我有一个配置单元表,它有两个列(day,type of theu day),都是string类型
"monday" [{"temp" : 45, "weather": "rainny"}, {"temp" : 25, "weather": "sunny"}, {"temp" : 15, "weather": "storm"}]
"tuesday" [{"temp" : 5, "weather": "winter"}, {"temp" : 10, "weather": "sun"}, {"temp" : 18, "weather": "dawn"}]
我想分开(我猜爆炸是专业术语),然后得到每天的天气列表。我很熟悉如何在python中实现这一点,但是有没有一种方法可以直接在hive中实现这一点。
"monday" [45, 25, 15]
"tuesday" [5, 10, 18]
1条答案
按热度按时间2ul0zpep1#
使用数据示例进行测试。将cte替换为您的表。阅读代码中的注解:
结果:
如果json数组可以包含三个以上的元素,那么可以使用横向视图explode或posexplode,然后构建结果数组,如下所示:https://stackoverflow.com/a/51570035/2700344.
在cast()中 Package 数组元素。。。如果你需要的话
array<int>
结果不是array<string>
: