gpt4 book ai didi

hadoop - 使用 PIG 脚本获取 friend ID - 需要文本操作

转载 作者:可可西里 更新时间:2023-11-01 15:30:09 43 4
gpt4 key购买 nike

这是我的意见

user0=242561&friend=6226&friend=93856&age=35&friend=35900
user1=242562&friend=6226&friend=93856&age=35&friend=35900
user2=242563&friend=6226&friend=93856&age=35&friend=35900&friend=33900&friend=34900
user3=242564&friend=6226&friend=93856&age=35&friend=35900&friend=35930&friend=35920&friend=35901

注意事项及要求

  • 我需要删除 age=35
  • 我需要获取与该用户相关联的 friend 号的用户(在输入中,一行将有一个用户

好友数会不一样,最大好友数未知

预期结果

user0=242562-6226,93856,35900
user1=242562-6226,93856,35900
user2=242562-6226,93856,35900,33900,34900
user3=242562-6226,93856,35900,35930,35920,35901

我尝试过类似的方法,但没有成功

inputs  = LOAD  '/data/friends4' AS (line:chararray);
tokenized = FOREACH inputs GENERATE FLATTEN(TOKENIZE(line, '&')) AS parameter;
filtered = FILTER tokenized BY INDEXOF(parameter, 'age=') != 0;
dump filtered;

我越来越像

(user=242562)
(friend=6226)
(friend=93856)
(friend=35900)
(user1=242562)
(friend=6226)
(friend=93856)
(friend=35900)
(user2=242562)
(friend=6226)
(friend=93856)
(friend=35900)
(friend=33900)
(friend=34900)
(user3=242562)
(friend=6226)
(friend=93856)
(friend=35900)
(friend=35930)
(friend=35920)
(friend=35901)

现在我需要如下结果,有人可以帮忙吗

user0=242562-6226,93856,35900
user1=242562-6226,93856,35900
user2=242562-6226,93856,35900,33900,34900
user3=242562-6226,93856,35900,35930,35920,35901

最佳答案

您可以创建 UDF 以正确且简单的方式处理它,尽管您可以尝试使用以下脚本,但我只是在您的脚本中添加一行以将 'friend=' 替换为 ',' 现在您可以创建一个 UDF这将从空格中拆分字符串,而不是将第一个 ',' 替换为 '-'

inputs = LOAD '/data/friends4' AS (line:chararray);
tokenized = FOREACH inputs GENERATE FLATTEN(TOKENIZE(line, '&')) AS parameter;
filtered = FILTER tokenized BY INDEXOF(parameter, 'age=') != 0;

REPL1 = FOREACH filtered GENERATE REPLACE($0, 'friend=', ',');
dump REPL1;

输出

(user0=242561)
(,6226)
(,93856)
(,35900 user1=242562)
(,6226)
(,93856)
(,35900 user2=242563)
(,6226)
(,93856)
(,35900)
(,33900)
(,34900 user3=242564)
(,6226)
(,93856)
(,35900)
(,35930)
(,35920)
(,35901)

关于hadoop - 使用 PIG 脚本获取 friend ID - 需要文本操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35356120/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com