gpt4 book ai didi

java - 使用 Scala/Java API 基于外部数组的内容进行自定义排序

转载 作者:行者123 更新时间:2023-11-30 10:04:07 25 4
gpt4 key购买 nike

我有以下数据:-

+-------------+
| card type|
+-------------+
|ColonialVoice|
| SuperiorCard|
| Vista|
| Distinguish|
+-------------+

我有一个自定义顺序数组,我希望按照数组中给定的方式对数据集进行排序。

[ "Distinguish", "Vista", "ColonialVoice", "SuperiorCard"]

预期输出如下:-

+-------------+
| card type|
+-------------+
| Distinguish|
| Vista|
|ColonialVoice|
| SuperiorCard|
+-------------+

如何使用 spark Java API 实现上述自定义排序。任何人都可以使用任何 API 提供上述帮助吗?

最佳答案

可能的解决方案,假设您有充分的理由想要这样做:

  1. 从该数组创建一个DataFrame
  2. 向该 DataFrame 添加一列 monotonically_increasing_id
  3. 将此 DataFrame 加入您在 card type 列上的原始 DataFrame
  4. monotonically_increasing_id 列排序
  5. 删除 monotonically_increasing_id

在 Scala 中会是:

import org.apache.spark.sql.functions.monotonically_increasing_id

val spark = ...
val df = ...
val order = Array("Distinguish", "Vista", "ColonialVoice", "SuperiorCard")
import spark.implicits._

val orderDF = order.toSeq.toDF
val orderDFWithId = orderDF.withColumn("id", monotonically_increasing_id)
val joined = df.join(orderDFWithId, Seq("card type"), "left_outer")
val sortedDF = joined.orderBy("id").drop("id")

关于java - 使用 Scala/Java API 基于外部数组的内容进行自定义排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56039490/

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