【问题标题】:Rename files after writing dataframe as CSV in PySpark [duplicate]在 PySpark 中将数据帧写入 CSV 后重命名文件 [重复]
【发布时间】: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分部分写入数据是有原因的

标签: apache-spark pyspark


【解决方案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 我正在尝试有效地提取镶木地板文件。还在学习!
猜你喜欢
  • 1970-01-01
  • 2019-03-08
  • 1970-01-01
  • 2018-05-11
  • 1970-01-01
  • 2019-11-10
  • 2017-11-29
  • 2013-06-24
  • 2020-03-27
相关资源
最近更新 更多