在pigMap中查找变量键

vwhgwdsa  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(412)

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

[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;

因此,如果我有一行像“this my词汇表”,我会得到以下输出:1 3 3 4,但我不断得到各种错误。如何在Map中查找变量值?
我已经研究了如何在apache pig中使用map数据类型?以及http://pig.apache.org/docs/r0.10.0/basic.html#map-schema,但这些只有在Map中查找固定值时才有用,例如m.mp#'this',这不是我在这里要做的。

4smxwvx5

4smxwvx51#

您还可以展平m,然后基于标记/字连接m和行(您可以对m执行“复制”连接,这样它将成为每个Map器的副本)

相关问题