2011-12-06 15 views
2

私は入力ベクトル(数字の)を介して相関を実行したいベクトルのリストを持っています。ベクトルのリストをどのように保存するのですか?入力ベクトルを渡してPig's COR() functionに渡すにはどうすればいいですか?Hadoop Pig相関の使用

-- SET command? what is it used for? this doesn't work 
SET input_nums {0,2,0,1,2,0,0,0,0} AS bag{} 

-- storing vectors in this format doesn't seem to work 
-- import via: data = LOAD mynums AS (id:long, nums:bag{}); 
1\t{1,3,3,4,5} 
2\t{3,4,5,6,6} 

-- this seems to work, but adds overhead on storage 
-- import via: data = LOAD mynums AS (id:long, nums:bag{t:(x:long)}); 
1\t{(1),(3),(3),(4),(5)} 
2\t{(3),(4),(5),(6),(6)} 

-- assuming "data" and "input_nums" are set, no idea how to use though: 
results = COR(data, input_nums) -- nope 
results = FOREACH data GENERATE id, COR(nums, input_nums) -- nope 

重要性の低い質問:引数を取るブタスクリプトを見たことがあります。私はinput_numsをこれらの引数(すなわち文字列引数、次にPigが袋に入れる)で渡すことはできますか?

答えて

0

豚でCORを実行することに関する唯一の要件は、入力引数が2倍の袋であることです。また、豚のバージョンが0.90.1以上であることを確認してください(JIRA: PIG-2286参照)。

入力データ:
1<tab>10
2<tab>12
3<tab>13
4<tab>14

スクリプト:
data = LOAD 'cor.txt' AS (series1:double, series2:double);
rel = GROUP data ALL;
corop = FOREACH rel GENERATE COR(data.series1, data.series2);
dump corop;

出力:
({(var0,var1,0.9827076298239908)})

関連する問題