我在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在大小方面包含均匀的数据分布。这意味着两个目录都应该包含例如25 1GB或数据,不应该存在mydata1包含1 1GB和mydata2 contain49GB的情况
谢谢
发布于 2020-12-24 06:04:15
是的,您可以使用bucketing。阅读更多关于buckinting的内容:https://dwgeek.com/spark-sql-bucketing-on-dataframe-examples.html/
https://stackoverflow.com/questions/65331227
复制相似问题