【发布时间】:2019-02-12 05:30:20
【问题描述】:
我想比较 2 个数据框,我想根据以下 3 个条件提取记录。
- 如果记录匹配,则“SAME”应出现在新列 FLAG 中。
- 如果记录不匹配,如果它来自df1(假设No.66),'DF1'应该在FLAG列中。
- 如果记录不匹配,如果它来自df2(假设No.77),'DF2'应该进入FLAG列。
这里需要考虑和验证整个 RECORD。记录明智的比较。
我还需要使用 PySpark 代码检查数百万条记录。
df1:
No,Name,Sal,Address,Dept,Join_Date
11,Sam,1000,ind,IT,2/11/2019
22,Tom,2000,usa,HR,2/11/2019
33,Kom,3500,uk,IT,2/11/2019
44,Nom,4000,can,HR,2/11/2019
55,Vom,5000,mex,IT,2/11/2019
66,XYZ,5000,mex,IT,2/11/2019
df2:
No,Name,Sal,Address,Dept,Join_Date
11,Sam,1000,ind,IT,2/11/2019
22,Tom,2000,usa,HR,2/11/2019
33,Kom,3000,uk,IT,2/11/2019
44,Nom,4000,can,HR,2/11/2019
55,Xom,5000,mex,IT,2/11/2019
77,XYZ,5000,mex,IT,2/11/2019
预期输出:
No,Name,Sal,Address,Dept,Join_Date,FLAG
11,Sam,1000,ind,IT,2/11/2019,SAME
22,Tom,2000,usa,HR,2/11/2019,SAME
33,Kom,3500,uk,IT,2/11/2019,DF1
33,Kom,3000,uk,IT,2/11/2019,DF2
44,Nom,4000,can,HR,2/11/2019,SAME
55,Vom,5000,mex,IT,2/11/2019,DF1
55,Xom,5000,mex,IT,2/11/2019,DF2
66,XYZ,5000,mex,IT,2/11/2019,DF1
77,XYZ,5000,mex,IT,2/11/2019,DF2
我加载了如下所示的输入数据,但不知道如何继续。
df1 = pd.read_csv("D:\\inputs\\file1.csv")
df2 = pd.read_csv("D:\\inputs\\file2.csv")
感谢任何帮助。谢谢。
【问题讨论】:
标签: python-3.x pyspark apache-spark-sql