列の値を配列に集計する必要があります(配列articleId
)。これはあらかじめgroupBy
ごとに作成したグループ内で行う必要があります。Spark SQL:グループ内の列の値を集計する
私のテーブルには、次のようになります。
| customerId | articleId | articleText | ...
| 1 | 1 | ... | ...
| 1 | 2 | ... | ...
| 2 | 1 | ... | ...
| 2 | 2 | ... | ...
| 2 | 3 | ... | ...
そして、私はこれまで
| customerId | articleIds |
| 1 | [1, 2] |
| 2 | [1, 2, 3] |
私のコードのようなものを構築したい:
DataFrame test = dfFiltered.groupBy("CUSTOMERID").agg(dfFiltered.col("ARTICLEID"));
しかし、ここで私はAnalysisException
を取得します:
Exception in thread "main" org.apache.spark.sql.AnalysisException: expression 'ARTICLEID' is neither present in the group by, nor is it an aggregate function. Add to group by or wrap in first() (or first_value) if you don't care which value you get.;
誰かが正しい声明を作成するのに役立つことができますか?
はあなたを行います'SQLContext'または' HiveContext'を使用しますか? –
私はSQLContextを使用しています... –