Input:
Visit ID Events
101 154,2,135
124 1, 120, 1050,2302
139 200, 150, 1, 320
140 30023, 200
从新手到Pig。想知道如何使用pig脚本列出事件中包含“1”的visitid行。
谢谢!
我试过的代码:
a = LOAD '/user/a6000518-a/AdobeHourlySampleHit/hit_data.tsv' using PigStorage('\t');
b= foreach a GENERATE REGEX_EXTRACT_ALL($2, '(.*,1,.*|1,.*|.*,1)') as post_event_list;
c= FILTER b BY $0 is not NULL;
d= DISTINCT c;
dump d;
这只打印行包含“1”的事件列。如果使用visitid生成,则得到的结果不正确。我想打印visitid以及包含“1”的事件。
2条答案
按热度按时间jqjz2hbq1#
你可以写一个
python udf
并查看字符串中是否存在有问题的字符;可能会让事情简单得多。python自定义项:
脚本:
输出:
bvuwiixz2#
我想出来了。可能不是有效的编码方式,但得到的输出准确。