Spark数据框中除了

时间:2017-02-08 21:33:39

标签: scala apache-spark dataframe spark-dataframe except

我加入了一些在id,month和year上分区的表后,建立了2个数据帧df1和df2。由于连接中使用的日期范围上的过滤器,这两个数据帧具有不同的数据。

grpDf1 = df1.groupBy(df1("id"), df1("orderId"), df1("userid"), df1("name"))
             .agg(min(df1("dateId")).as("dateId"), min(df1("month")).as("month"), min(df1("year")).as("year"),sum("quantity").as("quantity"),sum("amount").as("amount"))

grpDf2 = df2.groupBy(df1("id"), df2("orderId"), df2("userid"), df2("name"))
             .agg(min(df2("dateId")).as("dateId"), min(df2("month")).as("month"), min(df2("year")).as("year"),sum("quantity").as("quantity"),sum("amount").as("amount"))

当我尝试grpDf2.except(grpDf1)时 我收到错误冲突属性:id#8,orderId#5,userid#6,name#7

但是当我联合grpDf2.union(grpDf1)时,没有错误。

感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

是否使用了确切的代码?您是否希望按df2字段定义grpDf2分组?我看到df 1 (" id")。 它仍然不应该引起任何问题。

实际错误是什么?

什么是输出:

df1.printSchema

df2.printSchema