說我有三個文件data1
,data2
和assocs
加入多重關係:由不同領域
$ cat data1
key1,foo
key2,bar
$ cat data2
key3,braz
key4,froz
$ cat assoc
key1,key3
key2,key4
我通過
$ pig -b -p debug=WARN -x local
Warning: $HADOOP_HOME is deprecated.
Apache Pig version 0.10.0 (r1328203) compiled Apr 19 2012, 22:54:12
Logging error messages to: /home/vince/tmp/pig_1355407390166.log
Connecting to hadoop file system at: file:///
grunt> data1 = load 'data1' using PigStorage(',') as (key: chararray, val: chararray);
grunt> data2 = load 'data2' using PigStorage(',') as (key: chararray, val: chararray);
grunt> assoc = load 'assoc' using PigStorage(',') as (key1: chararray, key2: chararray);
加載這些文件,我想要的是一種關係是這樣的:
(foo, braz)
(bar, froz)
那就是
data1_val, data1_key <-> assoc_key1, assoc_key2 <-> data2_key, data2_val
我的解決辦法: - 第一步驟:加入assoc命令數據1, - 第二步驟加入結果和數據2。我會爲所有字段使用一個唯一的名稱,這使得它更容易。 – Frederic
是的,我試過了,並沒有弄清楚,我沒有膠水,我做錯了。我試過'join1 =通過key加入data1,通過key1加入;'',但是'dump join1'不會產生任何結果。 –