Hadoop 猪的动态元组?
我在pig中获得了元组数据Hadoop 猪的动态元组?,hadoop,apache-pig,Hadoop,Apache Pig,我在pig中获得了元组数据 0,(0),(zero) 1,(1,2),(first,second) 我能收到这个吗 0,0,zero 1,1,first 1,2,second 首先,我要更正您的术语,您应该将(0)和(1,2)视为包,而不是元组。元组是表示某种实体的定长数据结构。例如说(姓名、地址、出生年份)。如果您有一个类似对象的列表,如{(苹果),(橙色),(香蕉)},您需要一个包 不存在允许您“压缩”多个行李/列表的行为。原因是从设计角度来看,Pig将袋
0,(0),(zero)
1,(1,2),(first,second)
我能收到这个吗
0,0,zero
1,1,first
1,2,second
首先,我要更正您的术语,您应该将
(0)
和(1,2)
视为包,而不是元组。元组是表示某种实体的定长数据结构。例如说(姓名、地址、出生年份)
。如果您有一个类似对象的列表,如{(苹果),(橙色),(香蕉)}
,您需要一个包
不存在允许您“压缩”多个行李/列表的行为。原因是从设计角度来看,Pig将袋子视为无序列表,因此术语“袋子”不是“列表”。这种假设确实有助于并行性,因为您不必考虑顺序。因此,很难将
1
与first
相匹配
您可以尝试编写一个以两个包为参数的列表,然后将两个列表拉上拉链,然后将其中一个列表拉上拉链返回 那么您尝试了什么呢?我创建了带有动态元组的UDF。例如,您不能从
STRSPLIT
获得这样的输出吗?他可以使用STRSPLIT
生成单独的包,但是您仍然需要压缩它们。但是STRSPLIT
返回一个元组。对$0
为0的数据执行类似于STRSPLIT($0,,:')
的操作和第一:第二次应该产生OP所说的内容。@mr2如果您不发布答案,我会有兴趣更清楚地看到您所说的内容。我可以使用FOREACH t3生成col1,col2.$0,col3.$0;和UNION FOREACH t3生成col1,col2.$1,col3.$1?