Spark 数据集写入 2 个不同的目录
Posted
技术标签:
【中文标题】Spark 数据集写入 2 个不同的目录【英文标题】:Spark dataset write into 2 different directories 【发布时间】:2020-12-16 21:16:33 【问题描述】:我在 spark 中有一个数据集,由 ip
列分区。现在我想把这个数据集分成 2 并写入 HDFS,这样如果总分区是 100
即 ip=1 to ip=100
那么每个 HDFS 目录最终应该包含 50 个分区。
输入:
mydata/
mydata/ip=1
mydata/ip=2
mydata/ip=3
mydata/ip=4
.
.
mydata/ip=101
结果
mydata1/
mydata1/ip=1
mydata1/ip=3
.
.
mydata1/ip=50
mydata2/
mydata2/ip=51
mydata2/ip=4
mydata2/ip=100
另外,在写出我如何确保每个目录 mydata1 和 mydata2 包含大小相等的数据分布时。这意味着两个目录都应该包含例如 25Gb 或数据, 不应该出现 mydata1 包含 1GB 而 mydata2 包含 49GB 的情况
谢谢
【问题讨论】:
【参考方案1】:是的,您可以使用分桶。阅读更多关于 buckinting 的信息: https://dwgeek.com/spark-sql-bucketing-on-dataframe-examples.html/
【讨论】:
谢谢。如何使用 spark 读取分桶数据,以便我可以从特定的桶中读取,上面的文章只解释了写入桶的内容?此外,像分区分桶一样,不会为每个桶创建一个新目录。我们能做到吗?以上是关于Spark 数据集写入 2 个不同的目录的主要内容,如果未能解决你的问题,请参考以下文章