gpt4 book ai didi

java - 如何从组中选择第一条记录?

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

我有一个记录列表/数组,我正在使用 explode 从列表中提取数据。我想使用 Java 中的 Spark SQL 从展开的结果中选择第一条记录。

Dataset<Row> ds= ds.select(
json.col("*"),
explode(json.col("records.record.newrecord")).as("newrecord"));
ds= ds.select(ds.col("EVENT_SEQ"), ds.col("newrecord").apply("event").as("EVENTTYPE"));

当前数据:

|           EVENT_SEQ|EVENTTYPE|
+--------------------+---------+
|5a694d77-bc65-4bf...| 0|
|5a694d77-bc65-4bf...| 0|
+--------------------+---------+

要求:

|           EVENT_SEQ|EVENTTYPE|
+--------------------+---------+
|5a694d77-bc65-4bf...| 0|
+--------------------+---------+

我看过建议为此目的使用 Cloumn.apply 的文档,但我没有找到足够的帮助来让我开始。

最佳答案

这肯定是具有first 功能的groupBy 运算符。

val ds = Seq(
("5a694d77-bc65-4bf...", 0),
("5a694d77-bc65-4bf...", 0)
).toDF("EVENT_SEQ", "EVENTTYPE")
scala> ds.show
+--------------------+---------+
| EVENT_SEQ|EVENTTYPE|
+--------------------+---------+
|5a694d77-bc65-4bf...| 0|
|5a694d77-bc65-4bf...| 0|
+--------------------+---------+

scala> ds.groupBy("EVENT_SEQ").agg(first("EVENTTYPE")).show
+--------------------+-----------------------+
| EVENT_SEQ|first(EVENTTYPE, false)|
+--------------------+-----------------------+
|5a694d77-bc65-4bf...| 0|
+--------------------+-----------------------+

关于java - 如何从组中选择第一条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44379400/

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