【问题标题】:Split a large csv into multiple csv with spark用火花将一个大的csv分成多个csv
【发布时间】:2021-03-19 04:30:01
【问题描述】:

我想用 spark 在 hdfs 中写一个大数据帧(150 go)。所以我做了:

df.coalesce(10).write.option("header",true).option("delimiter",";").csv("hdfsPath")

我希望每个输出 10 个 15 个分区的 csv 但我得到了一个包含所有数据的 csv 文件,我发现合并不起作用。 有什么办法解决这个问题吗?

【问题讨论】:

  • 你试过repartition()吗?
  • Dataframe 变量 df 的实际分区数是多少?如果它们小于 10,则合并不会做任何事情。在这种情况下,您可能必须使用重新分区。
  • spark repartition 是按行还是按块大小拆分 csv 文件?换句话说,我会在输出中截断文件吗?
  • 查看这篇文章以将大文件拆分为多个文件 - stackoverflow.com/questions/61338374/…

标签: scala csv apache-spark apache-spark-sql


【解决方案1】:

coalesce 的 Spark 文档之后引用:

如果请求的分区数较多,则保持当前分区数。

您需要按照 nehaev 的建议使用 repartition

【讨论】:

  • spark repartition 是按行还是按块大小拆分 csv 文件?换句话说,我会在输出中截断文件吗?
猜你喜欢
  • 2020-05-27
  • 1970-01-01
  • 2020-07-18
  • 1970-01-01
  • 2021-08-17
  • 2021-07-07
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多