scala - 如何在 Apache Spark 中反转排列 DataFrame
问题描述
如何使用 Scala 反转这个 DataFrame。我看到了sort
函数,但必须是特定的列,我只想反转它们
+---+--------+-----+
|id | name|note |
+---+--------+-----+
|1 | james |any |
|3 | marry |some |
|2 | john |some |
|5 | tom |any |
+---+--------+-----+
至:
+---+--------+-----+
|id | name|note |
+---+--------+-----+
|5 | tom |any |
|2 | john |some |
|3 | marry |some |
|1 | james |any |
+---+--------+-----+
解决方案
您可以添加具有递增 id 的列,使用 ofmonotonically_increasing_id()
并按降序排序
val dff = Seq(
(1, "james", "any"),
(3, "marry", "some"),
(2, "john", "some"),
(5, "tom", "any")
).toDF("id", "name", "note")
dff.withColumn("index", monotonically_increasing_id())
.sort($"index".desc)
.drop($"index")
.show(false)
输出:
+---+-----+----+
|id |name |note|
+---+-----+----+
|5 |tom |any |
|2 |john |some|
|3 |marry|some|
|1 |james|any |
+---+-----+----+
推荐阅读
- java - 无法在 Windows Server 2012R 64 位上创建新的本机线程
- python-3.x - 从 apscheduler 中的另一个线程删除/停止正在运行的作业
- excel - Excel从连续最后一个填充单元格中的字母数字中提取文本
- typescript - 用抽象方法实例化类
- sympy - 如果集成,SymPy 函数 integration_steps 是否会显示结果?
- php - 用于加密和解密的 PHP 代码在每次执行时创建不同的密文。任何人都可以用 PL/SQL 中的等效代码帮助我吗
- dart - 在 Flutter App 上按下按钮后,如何移动到屏幕下方的特定 Widget?
- kdb - 以字符串为参数的函数
- r - 当每个计算值都依赖于前一个值时如何使用 apply
- xml - 祖先和后代的长形式 - Xpath 轴