gpt4 book ai didi

java - Spark Java中的多重排序输出

转载 作者:行者123 更新时间:2023-12-02 11:11:04 24 4
gpt4 key购买 nike

我正在尝试使用 Spark 中的数据集找出多个排序输出

输入:-

城市1 A1

城市2 A2

城市1 C1

城市2 B2

城市1 B1

city2 C2

我希望首先根据两列对输出进行排序,然后将每个排序的输出存储在单独的文件中

输出:-

文件1:

城市1 A1

城市1 B1

城市1 c1

同样file2将包含c2的数据

最佳答案

显而易见的方法是使用partitonBy。以下代码(Scala 中)将为每个城市生成一个包含所需数据的文件夹。

val df = List(
("city1","A1"),
("city2","A2"),
("city1","C1"),
("city2","B2"),
("city1","B1"),
("city2","C2"))
.toDF("city","val")

df.sort("city", "val")
.withColumn("city-part",col("city"))
.coalesce(1)
.write
.partitionBy("city-part")
.format("csv")
.save("/output-path")

请注意,为了在输出文件中包含“city”列,我们将具有相同值的另一列(city-part)添加到数据框中,并将其用于分区。

关于java - Spark Java中的多重排序输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50617401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com