我有两份档案,
其中一个是titles.csv,具有以下格式的电影id和标题:
999: Title
734: Another_title
另一个是链接到电影的用户id列表
categoryid:user1\u id。。。。
222: 120
227: 414 551
249: 555
不同大小(每个流派类别至少有一个用户)
我们的目标是首先解析字符串,以便将每个字符串分成两部分(对于这两个文件),即“:”之前的所有内容和之后的所有内容。
我试过这么做
movies = LOAD .... USING PigStorage('\n') AS (line: chararray)
users = LOAD .... USING PigStorage('\n') AS (line: chararray)
-- parse 'users'/outlinks, make a list and count fields
tokenized = FOREACH users GENERATE FLATTEN(TOKENIZE(line, ':')) AS parameter;
filtered = FILTER tokenized BY INDEXOF(parameter, ' ') != -1;
result = FOREACH filtered GENERATE SUBSTRING(parameter, 2, (int)SIZE(parameter)) AS number;
但这正是我陷入困境/困惑的地方。思想?
我还应该在字符串的第二部分输出用户id最多的前10个条目。
1条答案
按热度按时间b5buobof1#
像这样试试
输出1:
输出2: