猪的替换功能如何工作?

时间:2016-04-25 07:28:45

标签: hadoop apache-pig

我的输入文件名是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函数中的第二个参数。

我的文件中没有空格,那我怎么来了在我的输出中。

1 个答案:

答案 0 :(得分:1)

好吧,根据你的陈述,在''上调用REPLACE函数。它不包含任何空格。
如果要替换空格,则需要像' '一样给出它。 +

两者都是不同的条件,如下所示:

words_each = FOREACH words GENERATE REPLACE(line,'','|') ; // without space
words_each = FOREACH words GENERATE REPLACE(line,' ','|') ; // with space

第一个条件会在每个字符后添加管道符号(|),而第二个条件不会产生任何影响,因为文件内容中没有空格。