Hive 在蜂房的桌子上,我有一个
我有一个如下形式的配置单元表,其中有100000多行,第一列包含组,每个组的行数不同Hive 在蜂房的桌子上,我有一个,hive,split,Hive,Split,我有一个如下形式的配置单元表,其中有100000多行,第一列包含组,每个组的行数不同 Column 1 Column 2 A a1 A a2 B b1 B b2 B b3 B b4 C c1 C c2 C c3 .... 我希望将数据拆分为多个列,如下所示 Column 1 Column 2 Column 3
Column 1 Column 2
A a1
A a2
B b1
B b2
B b3
B b4
C c1
C c2
C c3
....
我希望将数据拆分为多个列,如下所示
Column 1 Column 2 Column 3 Column4 Column 5
A a1 a2
B b1 b2 b3 b4
C c1 c2 c3
....
等等。
有人能帮我查询一下吗?那里
我不确定如何获得目标表的列,尽管在您的示例中有5列。我认为您可以将结果模式定义为:
列\u 1字符串,列\u 2列表
您可以按照第13章的示例实现UDAF源代码is。编译代码并将其打包到jar中后,比如说collect.jar
加罐file:///home/.../target/collect.jar;
创建临时函数collect作为com.jointhegrid.udf.collect.GenericUDAFCollect;
在示例中创建表Create table collectteststr1 string、str2 string
本地加载数据。。。
选择str1,通过str1从collecttest组中收集str2;
结果:
A ["a1","a2"]
B ["b1","b2","b3","b4"]
C ["c1","c2","c3"]
此外,您还可以根据需要选择“列”值。例如:
选择str1,按str1从collecttest组中选择collectstr2[1];给出结果:
A a2
B b2
C c2
A NULL
B b3
C c3
选择str1,按str1从collecttest组中选择collectstr2[2];给出结果:
A a2
B b2
C c2
A NULL
B b3
C c3