2017-02-01 2 views
0

Я использую искру, и у меня есть разные типы сжатых файлов на hdfs (zip, gzip, 7zip, tar, bz2, tar.gz и т. Д.). Может кто-нибудь, пожалуйста, дайте мне знать лучший способ для декомпрессии. Для некоторого сжатия я мог бы использовать CompressionCodec. Но он не поддерживает весь формат сжатия. Для zip-файла я сделал некоторый поиск и нашел, что ZipFileInputFormat можно использовать. но я не мог найти ни одной банки для этого.распаковка файлов из hdfs in spark

+0

Вы можете написать свой собственный формат ввода и записи читателя в Java и импортировать в Скале. https://gist.github.com/jteso/1868049 –

+0

[zip, 7zip, tar - архивы *, не обязательно «сжатые»] (http://superuser.com/questions/173756/which-is-more- эффективный-tar-или-zip-compression-what-is-the-difference-between), как у BZip2 и Gzip (gz и gzip одинаковы ... tar.gz - это tar-архив, который сжимается). Anyways, BZip2 - лучший вариант в HDFS http://comphadoop.weebly.com/index.html –

ответ

0

Для некоторого сжатого формата (я знаю, что это верно для tar.gz и zip, не проверены для других), вы можете напрямую использовать API-интерфейс dataframe, и он позаботится о сжатии для вас:

val df = spark.read.json("compressed-json.tar.gz")

+0

Привет @Ben выше работает для файла tar, но не для zip-файлов. Я использую искру 1.6 с помощью scala 2.10.2 –

Смежные вопросы