group by子句中的sparkSQL Map列

use*_*001 5 apache-spark apache-spark-sql spark-dataframe

我正在将查询从Hive迁移到SparkSQL,但是遇到Map列问题。

我的查询是

spark.sql(select col1,col2,my_map,count(*) from table group by col1,col2,my_map)
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

`my_map` cannot be used as a grouping expression because its data type map<string,string> is not an orderable data type.;
Run Code Online (Sandbox Code Playgroud)

my_map中的键总是变化的。我尝试使用不推荐使用的HiveContext,但这没有帮助。有什么解决方法吗?

谢谢!

Soh*_*dev 0

答案就在错误响应中。您需要将 my_map 变成可排序的数据类型!:)