4
我正将一个查询从Hive迁移到SparkSQL,但运行时遇到了Map列的一个问题。sparkSQL按照分组划分的列
我的查询是
spark.sql(select col1,col2,my_map,count(*) from table group by col1,col2,my_map)
我得到的错误是
`my_map` cannot be used as a grouping expression because its data type map<string,string> is not an orderable data type.;
在my_map的按键经常变化的。我尝试使用已弃用的HiveContext,但是,这并没有帮助。有没有解决方法?
谢谢!
由地图分组似乎是一个相当微妙的操作。你确定你真的想这样做吗? 无论如何,您可以考虑在执行此查询之前对地图进行规范化(尤其是如果您只需要几个键),否则您应该将其来回转换为可以通过sql轻松处理的另一种格式。 – Chobeat
@Chobeat到目前为止,我一直在Hive中做这件事。任何想法如何我可以来回转换到另一种格式? – user100001
元组列表可能是一个选项,我相信它应该可以工作。但要小心,这真的很接近肮脏的工作 – Chobeat