Распаковка сжатых данных LZ4 в Spark

У меня есть сжатые данные LZ4 в HDFS, и я пытаюсь распаковать их в Apache Spark в RDD. Насколько я могу судить, единственный метод в JavaSparkContext для чтения данных из HDFS — это textFile, который читает данные только так, как они есть в HDFS. Я встречал статьи на CompressionCodec, но все они объясняют, как сжать вывод в HDFS, тогда как мне нужно распаковать то, что уже находится в HDFS.

Я новичок в Spark, поэтому заранее извиняюсь, если я пропустил что-то очевидное или если мое концептуальное понимание неверно, но было бы здорово, если бы кто-нибудь мог указать мне правильное направление.


person shoopdelang    schedule 27.07.2014    source источник
comment
Я полагаю, вы хотите изучить документы и примеры для SparkContext.newAPIHadoopFile().   -  person Nick Chammas    schedule 28.07.2014
comment
Я на 80% уверен, что textFile выполняет распаковку данных, сжатых gzip. Вы пробовали? Разве он не распаковывает ваши файлы прозрачно?   -  person Daniel Darabos    schedule 29.07.2014
comment
Я пробовал textFile, и нет, данные не распаковываются.   -  person shoopdelang    schedule 29.07.2014
comment
@Daniel - textFile() действительно распаковывает сжатые данные (я использовал это много раз), но не данные, сжатые с помощью LZ4. Для этого вам понадобится newAPIHadoopFile().   -  person Nick Chammas    schedule 05.08.2014
comment
gzip не подходит для больших файлов, потому что распаковка не может быть распараллелена, в то время как bz2 (но медленнее) и lz4.   -  person Kiwy    schedule 14.11.2018


Ответы (1)


Spark 1.1.0 поддерживает чтение сжатых файлов LZ4 через sc.textFile. У меня это работает, используя Spark, созданный с помощью Hadoop, который поддерживает LZ4 (2.4.1 в моем случае)

После этого я создал нативные библиотеки для своей платформы, как описано в документы Hadoop и связали их со Spark с помощью параметра --driver-library-path.

Без связывания было native lz4 library not loaded исключений.

В зависимости от дистрибутива Hadoop, который вы используете, шаг создания собственных библиотек может быть необязательным.

person Vasyl Shchukin    schedule 21.11.2014