我正在处理一些数据,我的代码花了超过一分钟的时间才能将数据帧写入Parquet文件中。数据框大约有90000行和10列。这是我第一次使用spark,所以我不确定这里的时间性能,但是我认为这是太多时间。我已经阅读了一些文本,以使Parquet的性能更好,但是并没有帮助。我想知道我可以使用哪种类型的参数来获得更好的性能,或者我的数据是否太小,这就是正常时间。
我有一个for循环,该循环在我的dataframe日期列中进行迭代。每天进行迭代并写入文件。目前在测试中,我在该列中只有一天的时间,因此在此for循环中仅迭代一次,并且执行所有其他操作大约需要10秒钟(我没有在代码中包含其他操作的代码数据帧),但是到达该行以写入文件时,则需要花费超过1分钟的时间。
if i == 0:
df.write.mode('overwrite').parquet(self.files['parquet'])
else:
df.write.mode('append').parquet(self.files['parquet'])
答案 0 :(得分:0)
您不需要for循环即可保存Spark数据帧。只要做:
df.write.mode('overwrite').parquet(path)