我使用MongoSpark从MongoDB数据库中读取JSON数据作为Spark DataFrame。现在我想把驻留在DataFrame中的JSON数据写成Parquet文件,它就像一个魅力。但是,我正在努力为生成的Parquet文件设置压缩相关选项。我想使用Snappy作为编解码器,并且还希望通过为生成的Parquet文件指定块大小来生成“更大”的文件。我不知道到目前为止我测试了多少种不同的方法,但它们很多。我认为只需将.option(...)
个DataFrame.write()
语句“链接”到TimeGrouper
方法即可,这是一件很简单的事情,但到目前为止,我的努力都没有成功。
我在这里做错了什么?
答案 0 :(得分:1)
您有两种选择:
spark.sql.parquet.compression.codec
配置设置为snappy
。这将在创建spark会话之前完成(无论是创建配置还是更改默认配置文件)。df.write.option("compression","snappy").parquet(filename)