在 PySpark 中将数据帧写入 CSV 后重命名文件 [重复]
Posted
技术标签:
【中文标题】在 PySpark 中将数据帧写入 CSV 后重命名文件 [重复]【英文标题】:Rename files after writing dataframe as CSV in PySpark [duplicate] 【发布时间】:2021-08-24 08:54:59 【问题描述】:我正在尝试使用 df.write.csv
将 parquet 文件写入 CSV,但输出的 CSV 文件有一个大名称(部分 -0000-),我该如何重命名它?
我搜索了一下,发现可以使用下面的代码在scala中完成。
import org.apache.hadoop.fs._
fs = FileSystem.get(spark.hadoopConfiguration)
fs = FileSystem.get(sc.hadoopConfiguration)
fs.rename(new Path("csvDirectory/data.csv/part-0000"), new Path("csvDirectory/newData.csv"))
在pyspark中怎么做?
【问题讨论】:
检查this 用python可以吗?提前感谢 如果你的dataframe不是很大,转换df后使用pandas.to_csv()
toPandas
,spark分部分写入数据是有原因的
【参考方案1】:
不能直接用 Spark 完成。 Scala 中的解决方案可以适应 Python:
fs = spark._jvm.org.apache.hadoop.fs.FileSystem.get(spark._jsc.hadoopConfiguration())
def rename(old_file_name, new_file_name):
fs.rename(
spark._jvm.org.apache.hadoop.fs.Path(old_file_name),
spark._jvm.org.apache.hadoop.fs.Path(new_file_name),
)
【讨论】:
上述解决方案不适用于 pyspark 。请在打印之前告诉我是否有任何其他方法可以捕获它 @NEERAJGHATE 查看我的编辑 这是什么意思? @Steven 谢谢你 11 @thebluephantom 我正在尝试有效地提取镶木地板文件。还在学习!以上是关于在 PySpark 中将数据帧写入 CSV 后重命名文件 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Pyspark - 将数据帧写入 2 个不同的 csv 文件
Pyspark 写入数据帧并将其保存到 csv 文件中会出现错误