pig拉丁语按字段联接

svdrlsy4  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(252)

我有一个和Pig拉丁语有关的问题:
我有以下数据(一行):

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 generate来清除它。但是,我想要一些更简单的解决方案,不需要太多可能导致性能问题的连接。
数据集a是文本(一种方式的句子…)。
那么我有什么选择来实现这一点呢?任何帮助都很好。

iyfamqjs

iyfamqjs1#

一个句子可以表示为一个元组,包含一个元组包(单词,计数)。
因此,我建议您将存储数据的方式更改为以下格式:

sentence:tuple(words:bag{wordcount:tuple(word, count)})

相关问题