如何在spark 1.6-scala函数中显示标签不匹配的报告?

如何在spark 1.6-scala函数中显示标签不匹配的报告?,scala,dataframe,apache-spark,apache-spark-1.6,Scala,Dataframe,Apache Spark,Apache Spark 1.6,假设有两个数据帧df1和df2 df1有以下数据 A | B ------- 1 | m 2 | n 3 | o A | B ------- 1 | m 2 | n 3 | p df2有以下数据 A | B ------- 1 | m 2 | n 3 | o A | B ------- 1 | m 2 | n 3 | p df1。除了(df2)返回 A | B ------- 3 | o 3 | p 如何显示以下结果 df1: 3 | o df2

假设有两个数据帧df1和df2

df1有以下数据

 A | B
-------
 1 | m
 2 | n
 3 | o
 A | B
-------
 1 | m
 2 | n
 3 | p
df2有以下数据

 A | B
-------
 1 | m
 2 | n
 3 | o
 A | B
-------
 1 | m
 2 | n
 3 | p
df1。除了(df2)
返回

 A | B
-------
 3 | o
 3 | p
如何显示以下结果

df1:  3 | o
df2:  3 | p
根据df1.except(df2),返回一个新的数据帧,其中包含此帧中的行,但不包含另一帧中的行。i、 它将返回DF1中的行,而不是DF2中的行。因此,自定义except函数可以编写为:

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|
+---+---+---+

另请参考:此字段是否可以添加到df的开头?这有什么关系?val edf=edf1.union(edf2)val cols=edf.columns.filter(c=>!c.equalsIgnoreCase(“df”))edf.select(“df”,cols:*)