团队,我们需要根据两个结构完全相同的Pyspark数据框之间的关键字段生成不匹配列的报告。
这里是第一个数据帧-
>>> df.show()
+--------+----+----+----+----+----+----+----+----+
| key|col1|col2|col3|col4|col5|col6|col7|col8|
+--------+----+----+----+----+----+----+----+----+
| abcd| 123| xyz| a| ab| abc| def| qew| uvw|
| abcd1| 123| xyz| a| ab| abc| def| qew| uvw|
| abcd12| 123| xyz| a| ab| abc| def| qew| uvw|
| abcd123| 123| xyz| a| ab| abc| def| qew| uvw|
|abcd1234| 123| xyz| a| ab| abc| def| qew| uvw|
+--------+----+----+----+----+----+----+----+----+
这是第二个数据帧-
>>> df1.show()
+--------+----+----+----+----+----+----+----+----+
| key|col1|col2|col3|col4|col5|col6|col7|col8|
+--------+----+----+----+----+----+----+----+----+
| abcd| 123| xyz| a| ab| abc| def| qew| uvw|
| abcdx| 123| xyz| a| ab| abc| def| qew| uvw|
| abcd12| 123| xyz| a| abx| abc|defg| qew| uvw|
| abcd123| 123| xyz| a| ab| abc|defg| qew| uvw|
|abcd1234| 123| xyz| a| ab|abcd|defg| qew| uvw|
+--------+----+----+----+----+----+----+----+----+
完全外部连接给我这个-
>>> dfFull=df.join(df1,'key','outer')
>>> dfFull.show()
+--------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| key|col1|col2|col3|col4|col5|col6|col7|col8|col1|col2|col3|col4|col5|col6|col7|col8|
+--------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| abcd12| 123| xyz| a| ab| abc| def| qew| uvw| 123| xyz| a| abx| abc|defg| qew| uvw|
| abcd1| 123| xyz| a| ab| abc| def| qew| uvw|null|null|null|null|null|null|null|null|
|abcd1234| 123| xyz| a| ab| abc| def| qew| uvw| 123| xyz| a| ab|abcd|defg| qew| uvw|
| abcd123| 123| xyz| a| ab| abc| def| qew| uvw| 123| xyz| a| ab| abc|defg| qew| uvw|
| abcdx|null|null|null|null|null|null|null|null| 123| xyz| a| ab| abc| def| qew| uvw|
| abcd| 123| xyz| a| ab| abc| def| qew| uvw| 123| xyz| a| ab| abc| def| qew| uvw|
+--------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
如果我只是看col6,则有5个值与“键”字段不匹配(只有值匹配才是最后一条记录。)>
>>> dfFull.select('key',df['col6'],df1['col6']).show() +--------+----+----+ | key|col6|col6| +--------+----+----+ | abcd12| def|defg| | abcd1| def|null| |abcd1234| def|defg| | abcd123| def|defg| | abcdx|null| def| | abcd| def| def| +--------+----+----+
我需要为所有列生成类似这样的报告。不匹配样本可以是数据框中任何记录的值。
colName,NumofMismatch,mismatchSampleFromDf,misMatchSamplefromDf1 col6,5,def,defg col7,2,null,qew col8,2,null,uvw col5,3,null,abc
这是基于键的列式摘要,表示两个数据帧之间有多少个值不匹配。
Sid
团队,我们需要根据完全相同结构的2个Pyspark数据帧之间的关键字段生成不匹配列的报告。这是第一个数据帧->>> df.show()+ ----...
假设两个数据帧分别是df1