我正在尝试使用 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 ,但我不断收到各种错误。如何在地图中查找变量值?
我看过如何在 Apache Pig 中使用地图数据类型?和http://pig.apache.org/docs/r0.10.0/basic.html#map-schema,但这些仅在我在地图中查找固定值时才有帮助,例如 M.mp#'this ',这不是我想在这里做的。