Hadoop Spark:编写BZip2压缩拼花文件

Hadoop Spark:编写BZip2压缩拼花文件,hadoop,apache-spark,apache-spark-sql,spark-dataframe,parquet,Hadoop,Apache Spark,Apache Spark Sql,Spark Dataframe,Parquet,我想在spark sql中使用BZip2编解码器压缩从数据帧编写拼花地板文件,以便它们是可拆分的。通过以下代码,我能够使用snappy和gzip等编解码器: sqlContext.setConf("spark.sql.parquet.compression.codec", "snappy") sqlContext.read.parquet(stagingDir) .dropDuplicates() .write .mode(SaveMode.App

我想在spark sql中使用BZip2编解码器压缩从数据帧编写拼花地板文件,以便它们是可拆分的。通过以下代码,我能够使用snappy和gzip等编解码器:

sqlContext.setConf("spark.sql.parquet.compression.codec", "snappy")
sqlContext.read.parquet(stagingDir)
        .dropDuplicates()
        .write
        .mode(SaveMode.Append)
        .parquet(outputDir)
然而,当我尝试BZip2时,它似乎不可用,因为我得到了这个异常,即使我能够从RDD编写BZip2压缩文本文件

java.lang.IllegalArgumentException: The value of spark.sql.parquet.compression.codec should be one of uncompressed, snappy, gzip, lzo, but was bzip2

有没有办法从Spark SQL编写BZip2压缩拼花地板文件?

BZip2压缩文件是不可拆分的。BZip2以a开头,要解压缩它,需要整个文件。错误告诉您不能使用bzip2(它还告诉您可以使用哪些压缩器)。它似乎可以拆分,但您的评论非常有趣,谢谢:。我认为lzo是可拆分的,但它涉及到为文件编制索引的额外步骤