如何解决如何检查来自不同数据框的列值?
我有两个pyspark数据帧,我想检查第二列数据帧中是否存在第一个数据帧列值。如果第二个数据帧列中不存在第一个数据帧列值,则需要识别这些值并将其写入是否有更好的方法使用pyspark处理这种情况?感谢您的答复。
df[Name].show()
Java
Oracle
.NET
df1[Name].show()
Oracle
Scala
.NET
python
解决方法
您可以使用左反连接。
PySpark-
df_diff = df.join(df1,df('Name') == df1('Name'),'left_anti')
SQL
df.registerTempTable('df')
df1.registerTempTable('df1')
df_diff = spark.sql( 'select df.Name from df left anti join df1 on df.name = df1.name')
您还可以将Left Join与Where子句一起使用
df_diff = df.join(df1,'left').filter("df1['Name'] is null")
最后,获取值
df_diff.show()
剩下的要做的就是将所有值都提取到python列表中(我不确定是否要将其作为数据框或python列表)。
,a =[]
for col in df[Name].columns:
if col not in df1[Name].columns:
a.append(col)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。