gpt4 book ai didi

scala - 如何在 spark Dataframe 中使用 Except 函数

转载 作者:行者123 更新时间:2023-12-04 12:44:14 24 4
gpt4 key购买 nike

我想获得两个数据框之间的差异,但只返回具有不同字段的行。例如,我有 2 个数据框如下:

val DF1 = Seq(
(3,"Chennai", "rahman",9846, 45000,"SanRamon"),
(1,"Hyderabad","ram",9847, 50000,"SF")
).toDF("emp_id","emp_city","emp_name","emp_phone","emp_sal","emp_site")

val DF2 = Seq(
(3,"Chennai", "rahman",9846, 45000,"SanRamon"),
(1,"Sydney","ram",9847, 48000,"SF")
).toDF("emp_id","emp_city","emp_name","emp_phone","emp_sal","emp_site")

这两个数据帧之间的唯一区别是第二行的 emp_cityemp_sal。现在,我正在使用 except 函数,它给我整行如下:

DF1.except(DF2)

+------+---------+--------+---------+-------+--------+
|emp_id| emp_city|emp_name|emp_phone|emp_sal|emp_site|
+------+---------+--------+---------+-------+--------+
| 1|Hyderabad| ram| 9847| 50000| SF|
+------+---------+--------+---------+-------+--------+

但是,我需要这样的输出:

+---------+--------+-----+
|emp_id| emp_city|emp_sal|
+------+---------+-------+
| 1|Hyderabad| 50000|
+------+---------+-------+

其中显示了不同的单元格以及 emp_id

编辑:如果列中有变化,那么它应该出现,如果没有变化,那么它应该被隐藏或为 Null

最佳答案

以下内容应为您提供所需的结果。

DF1.except(DF2).select("emp_id","emp_city","emp_sal")

关于scala - 如何在 spark Dataframe 中使用 Except 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53607190/

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