取消
顯示的結果
而不是尋找
你的意思是:

我想比較兩個數據幀。在輸出我希望看到無與倫比的行和列確定導致的差異。

Databricks_POC
新的貢獻者二世
1接受解決方案

接受的解決方案

Pholo
貢獻者

嗨@vinita shinde

我不知道它是否符合你的要求,但是你可以嚐試這樣的東西

進口pyspark.sql。函數從pyspark F。sql進口行def is_different (col1, col2關口):如果col2關口:返回F.col (col1) = = F.col (col2)其他:返回F.col (col1) .alias (col1) def find_difference (data1、data2 id_columns):關口= data1。列data_difference = data1.subtract (data2) #首先發現的差異行data_difference = data_difference.join (data2.select (* [F.col (i) .alias (f 'b_{我}”)如果我沒有其他id_columns F.col (i) .alias(我)我在關口))= id_columns,如何= '左')#你加入的差異與第二dataframe data_difference返回。選擇(* [is_different (x, f”b_ {x}”, data_difference.columns) x在關口)# #你找出哪些列導致差異df1_spark第一dataframe # df2_spark第二datafame #第三行顯示的選項是ID的列表(find_difference (df1_spark df2_spark, [' ID ']))

結果將somethong這樣的

圖像讓我知道它是否滿足你的需求

在原帖子查看解決方案

5回複5

Kaniz
社區經理
社區經理

你好@磚POC的!我的名字叫Kaniz,我這裏的技術主持人。很高興認識你,謝謝你的問題!看看你的同行在社區中有一個回答你的問題。否則我將盡快給你回電。謝謝。

匿名
不適用

你是想做舊和新版本之間的變化數據捕獲相同的表嗎?

Databricks_POC
新的貢獻者二世

不,我想比較兩個表。相同的場景- /除了查詢。然而除了不匹配的行,我想也知道這是列導致的差異。

Pholo
貢獻者

嗨@vinita shinde

我不知道它是否符合你的要求,但是你可以嚐試這樣的東西

進口pyspark.sql。函數從pyspark F。sql進口行def is_different (col1, col2關口):如果col2關口:返回F.col (col1) = = F.col (col2)其他:返回F.col (col1) .alias (col1) def find_difference (data1、data2 id_columns):關口= data1。列data_difference = data1.subtract (data2) #首先發現的差異行data_difference = data_difference.join (data2.select (* [F.col (i) .alias (f 'b_{我}”)如果我沒有其他id_columns F.col (i) .alias(我)我在關口))= id_columns,如何= '左')#你加入的差異與第二dataframe data_difference返回。選擇(* [is_different (x, f”b_ {x}”, data_difference.columns) x在關口)# #你找出哪些列導致差異df1_spark第一dataframe # df2_spark第二datafame #第三行顯示的選項是ID的列表(find_difference (df1_spark df2_spark, [' ID ']))

結果將somethong這樣的

圖像讓我知道它是否滿足你的需求

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map