我们正在使用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')
答案 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")