查找猪地图中的变量键

时间:2013-03-12 21:36:57

标签: map apache-pig

我正在尝试使用pig将文本分解为小写的单词,然后在地图中查找每个单词。这是我的示例地图,我在map.txt(它只有1行):

[this#1.9,is#2.5my#3.3,vocabulary#4.1]

我这样加载:

M = LOAD 'mapping.txt' USING PigStorage AS (mp: map[float]);

效果很好。然后我执行以下操作来加载文本并将其分解为小写的单词:

LINES = LOAD 'test.txt' USING TextLoader() AS (line:chararray);
TOKENS = FOREACH LINES GENERATE FLATTEN(TOKENIZE(LOWER(line))) as (word:chararray);

现在,我想做这样的事情:

RESULTS = FOREACH TOKENS GENERATE M.mp#word;

所以,如果我有一个像“这是我的词汇”这样的行,我会得到以下输出:1 3 3 4,但我不断收到各种错误。如何在地图中查找变量值?

我查看了How can I use the map datatype in Apache Pig?http://pig.apache.org/docs/r0.10.0/basic.html#map-schema,但这些只有在我在地图中查找固定值时才有用,例如M.mp# '这',这不是我想要做的。

1 个答案:

答案 0 :(得分:0)

你也可以FLATTEN M然后基于令牌/单词加入M和LINES(你可以在M上进行'复制'连接,这样就可以复制到每个映射器