我正在尝试在配置单元中找到一种方法,从平面源中选择数据并输出到一个命名结构的数组中。这是我要找的一个例子。。。
样本数据:
house_id,first_name,last_name
1,bob,jones
1,jenny,jones
2,sally,johnson
3,john,smith
3,barb,smith
期望输出:
1 [{"first_name":"bob","last_name":"jones"},{"first_name":"jenny","last_name":"jones"}]
2 [{"first_name":"sally","last_name":"johnson"}]
3 [{"first_name":"john","last_name":"smith"},{"first_name":"barb","last_name":"smith"}]
我尝试了collect\ list和collect\ set,但它们只允许原始数据类型。有没有想过我在Hive里该怎么做?
3条答案
按热度按时间camsedfj1#
我会用这个jar,它是一个更好的实现
collect
(并采用复杂的数据类型)。查询:
输出:
qgzx9mmu2#
也可以使用变通方法
3qpi33ja3#
你可以用pyspark或scalaspark试试。。sparksql允许原始和非原始数据类型。例如,您可以执行collect\u set(命名为\u struct)