gpt4 book ai didi

apache-spark - 在S3中将sparkdataframe写入.csv文件,然后在pyspark中选择一个名称

转载 作者:行者123 更新时间:2023-12-04 19:35:12 26 4
gpt4 key购买 nike

我有一个数据框,我要在S3中将其写入一个.csv文件
我使用以下代码:

df.coalesce(1).write.csv("dbfs:/mnt/mount1/2016//product_profit_weekly",mode='overwrite',header=True)

它将.csv文件放在product_profit_weekly文件夹中,此刻.csv文件在S3中有一个怪异的名称,当我要编写文件时可以选择一个文件名吗?

最佳答案

所有spark数据帧编写器(df.write .___)都不会写入单个文件,而是每个分区写入一个块。我想你得到的是一个名为

df.coalesce(1).write.csv("dbfs:/mnt/mount1/2016//product_profit_weekly

还有一个文件里面叫
part-00000

在这种情况下,您正在做的事情可能效率很低,而且不太“闪闪发光”-您正在将所有数据帧分区合并为一个,这意味着您的任务实际上并未并行执行!

这是一个不同的模型。要利用所有的 Spark 并行化,这意味着不要合并,并并行写入某个目录。

如果您有100个分区,您将获得:
part-00000
part-00001
...
part-00099

如果您需要将所有内容都保存在一个平面文件中,请编写一个小函数以将其合并。您可以在scala或bash中执行以下操作:
cat ${dir}.part-* > $flatFilePath

关于apache-spark - 在S3中将sparkdataframe写入.csv文件,然后在pyspark中选择一个名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40305627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com