通过PySpark在Avro上启用压缩

时间:2017-02-28 14:08:13

标签: compression pyspark avro snappy spark-avro

使用PySpark我试图用压缩保存Avro文件(最好是snappy)。

这行代码成功保存了264MB文件:

df.write.mode('overwrite').format('com.databricks.spark.avro').save('s3n://%s:%s@%s/%s' % (access_key, secret_key, aws_bucket_name, output_file))

当我添加编解码器选项.option('codec', 'snappy')时,代码成功运行但文件大小仍为264MB:

df.write.mode('overwrite').option('codec', 'snappy').format('com.databricks.spark.avro').save('s3n://%s:%s@%s/%s' % (access_key, secret_key, aws_bucket_name, output_file))

我也尝试了'SNAPPY''Snappy',它也运行成功,但文件大小相同。

read the documentation但它主要关注Java和Scala。这是PySpark不支持,Snappy是默认的,它没有记录,或者我没有使用正确的语法?还有a related question(我假设),但它专注于Hive并且没有答案。

TIA

1 个答案:

答案 0 :(得分:0)

我相信默认情况下,通过Snappy压缩启用spark。您尝试比较未压缩格式的大小时,应该会看到大小差异。