Pyspark 1.6文件压缩问题

时间:2017-07-21 14:13:32

标签: pyspark pyspark-sql

我们正在使用pyspark 1.6。并正在尝试将文本转换为其他文件格式 (像Json,csv等)压缩(gzip,lz4,snappy等)。但无法看到压缩工作。

请找到我们尝试过的代码。请帮助我们在我们的代码中指出问题其他建议解决。 只是为了补充一下这个问题,所有压缩都没有在1.6中工作,但它在spark 2.X

中运行良好

选项1:

from pyspark import SparkContext SparkConf
sqlContext.setConf("spark.sql.parquet.compression.codec", "snappy")

df = sqlContext.read.format('parquet').load('hdfs:///user/U1/json_parque_snappy')
df.write.format('json').save('hdfs:///user/U1/parquet_json_snappy')

选项2:

df = sqlContext.read.format('parquet').load('hdfs:///user/U1/json_parque_snappy')
df.write.format('json').option('codec','com.apache.hadoop.io.compress.SnappyCodec').save('hdfs:///user/U1/parquet_json_snappy_4')

选项3:

df = sqlContext.read.format('parquet').load('hdfs:///user/U1/json_parque_snappy')
df.write.format('json').option('compression','snappy').save('hdfs:///user/U1/parquet_json_snappy')

1 个答案:

答案 0 :(得分:0)

对于Spark 1.6,要保存text / json输出,请尝试使用

spark.hadoop.mapred.output.compression.codec parameter

有4个参数需要设置。这已经得到了回答,更多详情请见this链接

使用Spark 2.x,API更简单,您可以使用

df.write.option("compression", "gzip")