猪拉丁加入了领域

时间:2015-06-10 19:48:20

标签: hadoop apache-pig udf

我有猪拉丁语问题:

我在下面有这些数据(在一行中):

A = LOAD 'records' AS (f1:chararray, f2:chararray,f3:chararray, f4:chararray,f5:chararray, f6:chararray);
DUMP A;

(FITKA,FINVA,FINVU,FEEVA,FETKA,FINVA)

现在我有了另一个数据集:

B = LOAD 'values' AS (f1:chararray, f2:chararray);
Dump B;
(FINVA,0.454535)
(FITKA,0.124411)
(FEEVA,0.123133)

我想加入这两个数据集。我将从数据集B中获取相应的值,并将该值放在数据集A的值旁边。因此预期输出如下:

FITKA 0.123133, FINVA 0.454535 and so on .. 
(They can also be like: FITKA, 0.123133, FINVA, 0.454535 and so on .. )

然后我可以将值(0.123133 x 0.454535 .. and so on)相乘,因为它们现在位于同一行,这就是我想要的。

当然我可以逐列加入,然后值显示为“行尾”,然后我可以使用另一个foreach生成来清除它。但是,我想要一些更简单的解决方案,没有太多的连接,这可能会导致性能问题。

数据集A是文本(单向句子......)。

那么我有什么选择来实现这一目标? 你能帮忙的话,我会很高兴。

1 个答案:

答案 0 :(得分:0)

一个句子可以表示为一个元组,并包含一包元组(单词,计数)。

因此,我建议您将数据存储方式更改为以下格式:

sentence:tuple(words:bag{wordcount:tuple(word, count)})
相关问题