在 Scala 中对数据集 [String] 进行排序
Posted
技术标签:
【中文标题】在 Scala 中对数据集 [String] 进行排序【英文标题】:Sort a Dataset[String] in Scala 【发布时间】:2019-08-02 09:01:32 【问题描述】:我有 dsString: Dataset[(String,Long)]
(没有 DataFrame 或 Dataset[Row]),我正在尝试按 Long 订购 .orderBy(_._2)
我的问题是.orderBy()
和.sort()
只接受列,而我只能将.sortBy
与RDD 一起使用。
DataFrame 解决方案
dsString.toDF("a", "b")
.groupBy("b")
RDD解决方案:
dsString.toJavaRDD
.sortBy(_._2)
Dataset[(String,Long)]
怎么会这样做?
【问题讨论】:
【参考方案1】:数据集也可以应用 orderBy。例如,
+---+---+
| _1| _2|
+---+---+
| c| 3|
| b| 5|
| a| 4|
+---+---+
这是我的数据集和
df2.orderBy(col("_1").desc).show
df2.orderBy(col("_2").asc).show
给出如下结果:
+---+---+
| _1| _2|
+---+---+
| c| 3|
| b| 5|
| a| 4|
+---+---+
+---+---+
| _1| _2|
+---+---+
| c| 3|
| a| 4|
| b| 5|
+---+---+
【讨论】:
以上是关于在 Scala 中对数据集 [String] 进行排序的主要内容,如果未能解决你的问题,请参考以下文章