我的输入文件名是words.txt,如下所示。此下面的文件的每个记录中也没有空格。
Hi
Hi
How
我正在将此文件加载到Pig
中words = LOAD '/user/inputs/words.txt' USING PigStorage() AS (line:chararray);
words_each = FOREACH words GENERATE REPLACE(line,'','|') ;
dump words_each;
我的输出为
|H|i|
|H|i|
|H|o|w|
但我想知道REPLACE函数究竟是如何处理''这是我在REPLACE函数中的第二个参数。
我的文件中没有空格,那我怎么来了在我的输出中。
答案 0 :(得分:1)
好吧,根据你的陈述,在''
上调用REPLACE函数。它不包含任何空格。
如果要替换空格,则需要像' '
一样给出它。 +
两者都是不同的条件,如下所示:
words_each = FOREACH words GENERATE REPLACE(line,'','|') ; // without space
words_each = FOREACH words GENERATE REPLACE(line,' ','|') ; // with space
第一个条件会在每个字符后添加管道符号(|),而第二个条件不会产生任何影响,因为文件内容中没有空格。