嗨@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這樣的
讓我知道它是否滿足你的需求
嗨@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這樣的
讓我知道它是否滿足你的需求