使用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
答案 0 :(得分:0)
我相信默认情况下,通过Snappy压缩启用spark。您尝试比较未压缩格式的大小时,应该会看到大小差异。