我加入了一些在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)
时,没有错误。
感谢任何帮助。提前谢谢。
答案 0 :(得分:0)
是否使用了确切的代码?您是否希望按df2字段定义grpDf2分组?我看到df 1 (" id")。 它仍然不应该引起任何问题。
实际错误是什么?
什么是输出:
df1.printSchema
df2.printSchema