Hadoop Spark中LZ4压缩数据的解压缩
我在HDFS中有LZ4压缩数据,我正试图在ApacheSpark中将其解压缩为RDD。据我所知,Hadoop Spark中LZ4压缩数据的解压缩,hadoop,hdfs,apache-spark,lz4,Hadoop,Hdfs,Apache Spark,Lz4,我在HDFS中有LZ4压缩数据,我正试图在ApacheSpark中将其解压缩为RDD。据我所知,JavaSparkContext中从HDFS读取数据的唯一方法是textFile,它只读取HDFS中的数据。我遇到过关于压缩编解码器的文章,但它们都解释了如何将输出压缩到HDFS,而我需要解压缩HDFS上已有的内容 我是Spark的新手,因此如果我错过了一些明显的东西或者我的概念理解不正确,我会提前道歉,但如果有人能给我指出正确的方向,那将是非常好的。Spark 1.1.0通过sc.textFile阅
JavaSparkContext
中从HDFS读取数据的唯一方法是textFile
,它只读取HDFS中的数据。我遇到过关于压缩编解码器的文章,但它们都解释了如何将输出压缩到HDFS,而我需要解压缩HDFS上已有的内容
我是Spark的新手,因此如果我错过了一些明显的东西或者我的概念理解不正确,我会提前道歉,但如果有人能给我指出正确的方向,那将是非常好的。Spark 1.1.0通过sc.textFile
阅读LZ4压缩文件。
我使用了Spark,它是用支持LZ4的Hadoop构建的(在我的例子中是2.4.1)
之后,我为我的平台构建了本机库,如中所述,并通过--driver library path
选项将它们链接到Spark
没有链接,存在未加载的本机lz4库
异常
根据Hadoop发行版的不同,您正在使用的构建本机库步骤可能是可选的。我相信您希望查看
SparkContext.newAPIHadoopFile()
的文档和示例。我80%确定textFile
对gzip数据执行解压缩。你试过了吗?它不会透明地解压缩您的文件吗?我尝试过textFile
,但它不会解压缩数据。@Daniel-textFile()
确实会解压缩压缩的数据(我已经多次这样使用过它),但不会解压缩LZ4压缩的数据。为此,您需要newAPIHadoopFile()
.gzip在大型文件上不是一个选项,因为当bz2(但要慢)和lz4正在运行时,解压缩无法并行化。