У меня есть два файла, и я создал из них два кадра данных prod1 и prod2. Мне нужно найти записи с именами столбцов и значениями, которые не совпадают в обоих dfs.id_sk - это первичный ключ. Все столбцы имеют строковый тип данных
dataframe 1 (prod1)
id_sk | uuid|name
1 |10 |a
2 |20 |b
3 |30 |c
dataframe 2 (prod2)
id_sk | uuid|name
2 |20 |b-upd
3 |30-up|c
4 |40 |d
, поэтому мне нужнокадр данных результата в следующем формате.
id|col_name|values
2 |name |b,b-upd
3 |uuid |30,30-up
Я сделал внутреннее объединение и сравнил несопоставленные записи.
Я получаю результат следующим образом:
id_sk | uuid_prod1|uid_prod2|name_prod1|name_prod2
2 |20 |20 |b |b-upd
3 |30 |30-up |c |c
val commmon_rec = prod1.join(prod2,prod1("id_sk")===prod2("id_sk"),"inner").select(prod1("id_sk").alias("id_sk_prod1"),prod1("uuid").alias("uuid_prod1"),prod1("name").alias("name_prod1"),prod1("name").alias("name_prod2")
val compare = spark.sql("select ...from common_rec where col_prod1<>col_prod2")