【发布时间】:2017-11-04 10:11:49
【问题描述】:
我们这里有两个数据框:
预期的数据框:
+------+---------+--------+----------+-------+--------+
|emp_id| emp_city|emp_name| emp_phone|emp_sal|emp_site|
+------+---------+--------+----------+-------+--------+
| 3| Chennai| rahman|9848022330| 45000|SanRamon|
| 1|Hyderabad| ram|9848022338| 50000| SF|
| 2|Hyderabad| robin|9848022339| 40000| LA|
| 4| sanjose| romin|9848022331| 45123|SanRamon|
+------+---------+--------+----------+-------+--------+
和实际的数据框:
+------+---------+--------+----------+-------+--------+
|emp_id| emp_city|emp_name| emp_phone|emp_sal|emp_site|
+------+---------+--------+----------+-------+--------+
| 3| Chennai| rahman|9848022330| 45000|SanRamon|
| 1|Hyderabad| ram|9848022338| 50000| SF|
| 2|Hyderabad| robin|9848022339| 40000| LA|
| 4| sanjose| romino|9848022331| 45123|SanRamon|
+------+---------+--------+----------+-------+--------+
现在两个数据框的区别是:
+------+--------+--------+----------+-------+--------+
|emp_id|emp_city|emp_name| emp_phone|emp_sal|emp_site|
+------+--------+--------+----------+-------+--------+
| 4| sanjose| romino|9848022331| 45123|SanRamon|
+------+--------+--------+----------+-------+--------+
我们正在使用异常函数 df1.except(df2),但问题是,它返回不同的整个行。我们想要的是查看该行中哪些列不同(在这种情况下,“emp_name”中的“romin”和“romino”是不同的)。我们在这方面遇到了巨大的困难,任何帮助都会很棒。
【问题讨论】:
-
内连接并保留两个emp_name并删除两者相同的所有行。
-
你能对数据做出假设吗?例如,您可以假设 emp_id 是唯一的吗?甚至更好必须是相同的,并且只有对其数据的验证是相关的?否则,为什么这一行在 emp_name 中不同,并且与其他 emp_id 中的一个不完全不同
标签: scala apache-spark apache-spark-sql compare