2017-02-08 3 views
0

id、month、yearでパーティション化されたテーブルを結合した後、df1とdf2の2つのデータフレームが作成されています。これらの2つのデータフレームは、結合で使用された日付範囲のフィルタによって異なるデータを持ちます。sparkデータフレームの相反する属性のエラー

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、受注コード#5、#6のユーザーID、名#7

をしかし、私はgrpDf2.union(grpDf1)の組合を行う際に、そこにありますエラーはありません。

何か助けていただければ幸いです。前もって感謝します。

答えて

0

正確なコードは使用されていますか? grpDf2グループをdf2のフィールドで定義することを期待していますか?私はそれにdf ( "id")を参照してください。 それでも問題はありません。

実際のエラーとは何ですか?

の出力をどのようなものです:

df1.printSchema 

df2.printSchema 
関連する問題