假设我有如下关系:
(A, (1, 2, 3)) (B, (2, 3))
是否可以通过使用pig拉丁语扩展bag元素来建立新的关系?
(A, 1) (A, 2) (A, 3) (B, 2) (B, 3)
我试过用 FOREACH 以及 GENERATE ,但在循环遍历bag元素时,我很难生成新的元组。谢谢,
FOREACH
GENERATE
z4bn682m1#
以下是输入示例:
A 1 2 3 B 2 3
由制表符和空格分隔。我曾经 STRSPLIT 处理空白以生成元组。
STRSPLIT
raw_x = LOAD './sample.txt' using PigStorage('\t') AS (title:chararray, links:chararray); data_x = FOREACH raw_x GENERATE title, STRSPLIT(links, '\\s+') AS links;
9cbw7uwe2#
你能试试这个吗?输入文件
Pig手稿:
A = LOAD 'input.txt' USING PigStorage() AS (title:chararray,links:chararray); B = FOREACH A GENERATE title,FLATTEN(TOKENIZE(links)); DUMP B;
输出:
(A,1) (A,2) (A,3) (B,2) (B,3)
deyfvvtc3#
---编辑
3条答案
按热度按时间z4bn682m1#
以下是输入示例:
由制表符和空格分隔。
我曾经
STRSPLIT
处理空白以生成元组。9cbw7uwe2#
你能试试这个吗?
输入文件
Pig手稿:
输出:
deyfvvtc3#
---编辑