【问题标题】:Pyspark 1.6 File compression issuePyspark 1.6 文件压缩问题
【发布时间】: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


【解决方案1】:

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

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

有4个参数需要设置。这已经回答了,更多细节在this链接中

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    相关资源
    最近更新 更多