Так что я знаю, как сравнивать два фрейма данных и удалять строки, которые совпадают, используя вычитание.Это нормально.
И я знаю, как объединить значения, которые НЕ соответствуют, при создании нового df с результатами из обеих таблиц, которые не совпадают.
Что я не могу понять, какзатем сделать это - пустые значения, которые совпадают (и оставить идентификатор col только) распределенным способом, используя pyspark
Пример:
df_as_list = [['id','name','monthly_sales'],
[101,'John Snow', 1234.56],
[102,'Daenerys Targaryen', 9294.96],
[103,'Saul Goodman', 1274.57],
[104,'Bobby Axelrob', 1123459.56],
[105,'Joe Miller', 34.56],
[106,'James Holden', 1.23]]
my_schema = df_as_list.pop(0)
df1 = spark.createDataFrame(df_as_list, my_schema)
df_as_list = [['id','name','monthly_sales'],
[101,'John Snow', 777.56],
[102,'Daenerys Targaryen', 9294.96],
[103,'Saul Goodman', 1274.57],
[104,'Bobby Axelrob', 1123459.56],
[105,'Joe Miller', 34.56],
[1106,'James Holden', 1.23]]
my_schema = df_as_list.pop(0)
df2 = spark.createDataFrame(df_as_list, my_schema)
df1.show()
df2.show()
Желаемый результат:
+---+------------------+-------------+
| id| name|monthly_sales|
+---+------------------+-------------+
|101| | 1234.56|
|101| | 777.56|
+---+------------------+-------------+