基于空格在pig中加载文件

ddarikpa  于 2021-06-21  发布在  Pig
关注(0)|答案(2)|浏览(421)

我试图加载一个文件在Pig的2个字可以用空格或制表符分隔(可能我不止一个)。有没有一种方法可以使用regex作为空白来限定文件加载?或者有没有其他的方法来达到下面的目的?
输入:

COUNTESS    This young gentlewoman had a father,--O, that`

输出:

COUNTESS  
This  
young  
gentlewoman  
had  
a  
father,--O,  
that

有一个逗号分隔符也很好,但这会使它更复杂。目前,只有空格分隔符对我有效。

von4xj4u

von4xj4u1#

我不太了解Pig,但这里有一些信息:
https://pig.apache.org/docs/r0.9.1/func.html#strsplit

STRSPLIT(string, regex, limit)

正则表达式可以是 [\s,]+ . 它将在任何空格和逗号块上拆分。比如说, a b,c ,d, e 每一个字母都会分开。空格和逗号的顺序无关紧要。

r55awzrz

r55awzrz2#

将文件作为行加载,然后使用tokenize。如果您同时使用制表符和空格,则在加载数据后,添加一个步骤,将行中的制表符替换为空格,然后使用tokenize。

A = LOAD 'test2.txt' as (line:chararray);
B = FOREACH A GENERATE FLATTEN(TOKENIZE(A.$0));
C = FOREACH B GENERATE TOBAG(*);
DUMP C;

输出

相关问题