有两种关系
r1: {f1: chararray, f2: chararray} r2: {f3: chararray, f4: chararray}
两个关系中都没有唯一的键,但元组的数目是相同的。有没有一种方法可以连接关系的相应字段以获得像f2、f4这样的输出?
3z6pesqy1#
如果元组的顺序正确,可以使用rank。
r1a = RANK r1 BY * DENSE; r2a = RANK r2 BY * DENSE; r1r2 = JOIN r1a BY $0, r2a BY $0;
dba5bblo2#
另一种选择是使用:交叉(http://pig.apache.org/docs/r0.12.0/basic.html#cross)注意:从文档中提取:交叉是一个昂贵的操作,应该谨慎使用。Pig脚本:
R1 = LOAD 'a.csv' USING PigStorage(',') AS (f1:chararray,f2:chararray); R2 = LOAD 'b.csv' USING PigStorage(',') AS (f3:chararray,f4:chararray); R3 = CROSS R1,R2; R4 = FOREACH R3 GENERATE f2,f4; DUMP R4;
输入:a、 csv格式:
f1_value,f2_value
b、 csv文件
f3_Value,f4_value
输出:转储r4:
(f2_value,f4_value)
2条答案
按热度按时间3z6pesqy1#
如果元组的顺序正确,可以使用rank。
dba5bblo2#
另一种选择是使用:交叉(http://pig.apache.org/docs/r0.12.0/basic.html#cross)
注意:从文档中提取:交叉是一个昂贵的操作,应该谨慎使用。
Pig脚本:
输入:
a、 csv格式:
b、 csv文件
输出:转储r4: