【发布时间】:2017-07-24 20:33:14
【问题描述】:
我们使用的是 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')
【问题讨论】:
-
第二个类名看起来不对。您可以尝试使用 Bzip2 或 Gzip。此处列出了类名:org.apache.hadoop.io.compress
-
@philantrovert:感谢您的快速回复。我按照建议尝试过,但没有运气。它没有被压缩。 f.write.format('json').option('codec','org.apache.hadoop.io.compress.BZip2Codec').save('hdfs:///user/U1/parquet_json_bzip1')
标签: pyspark pyspark-sql