Как отобразить несовпадающий отчет с меткой в ​​спарке 1.6 - scala кроме функции? - PullRequest
1 голос
/ 27 февраля 2020

Предположим, есть 2 кадра данных df1 и df2.

df1 имеет данные ниже

 A | B
-------
 1 | m
 2 | n
 3 | o

df2 имеет данные ниже

 A | B
-------
 1 | m
 2 | n
 3 | p

df1.except(df2) возврат

 A | B
-------
 3 | o
 3 | p

Как отобразить результат, как показано ниже?

df1:  3 | o
df2:  3 | p

1 Ответ

1 голос
/ 27 февраля 2020

В соответствии с API документами df1.except (df2), возвращает новый DataFrame, содержащий строки в этом кадре, но не в другом кадре. т.е. он вернет строки, которые находятся в DF1, а не в DF2. Таким образом, пользовательская функция кроме может быть записана как:

def except(df1: DataFrame, df2: DataFrame): DataFrame = {
  val edf1 = df1.except(df2).withColumn("df", lit("df1"))
  val edf2 = df2.except(df1).withColumn("df", lit("df2"))
  edf1.union(edf2)
}
//Output
+---+---+---+
|  A|  B| df|
+---+---+---+
|  3|  o|df1|
|  3|  p|df2|
+---+---+---+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...