gpt4 book ai didi

hadoop - Pig Latin 中的 STRSPLIT 和 REGEXP_EXTRACT_ALL

转载 作者:可可西里 更新时间:2023-11-01 14:42:54 32 4
gpt4 key购买 nike

我有以下文件:

File
----
12-3 John 121
5-1 Sam 122

该文件是制表符(\t) 分隔的。我将行加载为 line:chararray,因为我希望数据不会在各个字段中拆分。

现在,我想提取详细信息(12-3 和 5-1)并将其存储为单独的数据。

我正在尝试使用 STRSPLITREGEX_EXTRACT_ALL,但数据似乎不匹配。

splitdata = FOREACH filedata {
regex = REGEX_EXTRACT_ALL(line, '^([0-9]*)\\-([0-9]*)');
split = STRSPLIT(line, '\\t', 1);
GENERATE regex, split;
};

这就是我想要的最终数据:

(12, 3, 12-3    John    121)
( 5, 1, 5-1 Sam 122)

最佳答案

关于:

A = LOAD .... AS (line:chararray);
B = FOREACH A GENERATE FLATTEN(REGEX_EXTRACT_ALL(line, '^(.*)\t(.*)\t(.*)$'))
AS (id:chararray, name:chararray, nameid:chararray);
C = FOREACH B GENERATE FLATTEN(REGEX_EXTRACT_ALL(id, '^([0-9]*)\\-([0-9]*)')),
id, name, nameid;
STORE C INTO ...

如果在加载时将行拆分为沿\t 的字段,则可以跳过 B = ...

关于hadoop - Pig Latin 中的 STRSPLIT 和 REGEXP_EXTRACT_ALL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13396778/

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