gpt4 book ai didi

java - 识别父数据框中不存在于java子集数据框中的记录

转载 作者:行者123 更新时间:2023-12-01 10:01:13 24 4
gpt4 key购买 nike

我有父数据帧,假设有 10 个 id,该数据帧的子集有 4 个 id,如何识别子集数据帧中不存在的剩余 6 个 id。我不想对输入运行任何 foreach 循环,因为输入可能包含数百万条记录。

Parent DataFrame :
id
1
2
3
4
5

SubsetDataFrame
id
1
2
3

所需输出为

 id
4
5

最佳答案

这就是你想要做的。

val parentDf = Seq(Tuple1(1), Tuple1(2), Tuple1(3), Tuple1(4), Tuple1(5)).toDF("id")
val subsetDf = Seq(Tuple1(1), Tuple1(2), Tuple1(3)).toDF("id")

val antiJoined = parentDf.join(
subsetDf.withColumnRenamed("l_id"),
$"id" === $"l_id",
"left_outer"
).filter($"l_id".isNull).drop("l_id")

antiJoined.show
+---+
| id|
+---+
| 4|
| 5|
+---+

请注意,由于 subsetDfparentDf 的子集,因此您只需要一个 left_outer。如果您想查找连接两侧缺少的元素(即,两个 DataFrames 都是较大超集的子集,并且您希望查找子集中不存在于另一个子集中的元素),那么您将请改用 full_outer

关于java - 识别父数据框中不存在于java子集数据框中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36790072/

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