2017-01-07 6 views
4

HiveからSparkSQLへクエリを移行していますが、Mapカラムで1つの問題が発生しています。sparkSQLグループ句のカラム

私のクエリがある

spark.sql(select col1,col2,my_map,count(*) from table group by col1,col2,my_map) 

私が手にエラーが常に変わりmy_mapで

`my_map` cannot be used as a grouping expression because its data type map<string,string> is not an orderable data type.; 

キーです。私は廃止されたHiveContextを使ってみましたが、それは役に立たなかった。このための回避策はありますか?

ありがとうございます!

+1

地図によるグループ分けはやや繊細な操作のようです。あなたは本当にこれをしたいと思いますか? とにかく、このクエリを実行する前にマップを正規化することについて考えることができます(特に、わずかなキーが必要な場合)。そうしないと、sqlで簡単に処理できる別の形式に変換する必要があります。 – Chobeat

+0

@Chobeat今まで私はHiveでやっています。どのように私はそれを前後に別のフォーマットに変換することができますか? – user100001

+1

タプルのリストはオプションかもしれませんが、私はそれが動作するはずだと思います。しかし、注意してください。これは実際には汚い作業に近いです。 – Chobeat

答えて

0

答えはエラー応答です。 my_mapを注文可能なデータ型にする必要があります。 :)