1

使用 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'它也成功运行,但文件大小相同。

我已经阅读了文档,但它侧重于 Java 和 Scala。这在 PySpark 中不支持吗,Snappy 是默认的并且没有记录,还是我没有使用正确的语法?还有一个相关的问题(我假设),但它专注于 Hive 并且没有答案。

TIA

4

1 回答 1

0

我相信默认情况下,使用 Snappy 压缩启用 spark。您尝试将大小与未压缩格式进行比较,您应该会看到大小差异。

于 2020-05-20T21:30:37.257 回答