Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hive 在蜂房的桌子上,我有一个_Hive_Split - Fatal编程技术网

Hive 在蜂房的桌子上,我有一个

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

我有一个如下形式的配置单元表,其中有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 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