ハイブ:グループ化された質問:式がグループ化されていないキー
Hive Group Question
ハイブで別の問題が発生しました:
mysqlの元のsqlステートメントは
SELECT DATEBUF, CITYID, CHANNELID FROM STAT_CVCHNEW WHERE DATEBUF>=20110517 AND DATEBUF<=20110519 GROUP BY DATEBUF, CITYID
[sql] プレーンビュー コピー
結果はDATEBUFとCITYIDでグループ化する必要があり、各グループはCHANNELIDの最初の値に対応します。
しかし、エラーはハイブで報告されます
[sql] プレーンビュー コピー
- 失敗:SemanticException [エラー10025]:行1:20式ない に グループ 沿って キー 'uc'
次に、Googleでhttp://stackoverflow.com/questions/5746687/hive-expression-not-in-group-by-keyにアクセスして、これを解決します。
ハイブのudaf関数を使用します。 collect_set()
に
[sql] プレーンビュー コピー- 選択するDATEBUF、CITYID、collect_set(CHANNELID)からPWD_STAT_CVCHNEWどこDATEBUF = 20130810そしてcityid<3 グループ 沿ってDATEBUF、CITYID
に
[sql] プレーンビュー コピー
- 選択するDATEBUF、CITYID、collect_set(CHANNELID)[0]からPWD_STAT_CVCHNEWどこDATEBUF = 20130810そしてcityid<3 グループ 沿ってDATEBUF、CITYID
ただし、返される結果のchannelidは、hdfsに格納されている順序の最初のものです。
実際、これは通常の状況では使用されていないようです
再投稿元:http://blog.csdn.net/wenlong237/article/details/10227419