2015-06-08 25 views
1

在猪脚本中,我想找到一种方法来转义我的数据中的分隔符,这样它就不会被解释为额外的列。例如,如果我使用冒号作为分隔符,并且我有一个值为“foo:bar”的列,我希望该字符串解释为单个列,而不需要加载器在中间拾取逗号。如何摆脱价值中发现的分隔符 - 猪脚本?

回答

0

您可以尝试http://pig.apache.org/docs/r0.12.0/func.html#regex-extract-all

​​

正则表达式可能需要进行调整。

+0

感谢Fred,但我的输入是关键和值的文本文件。 –

+0

你能张贴几行你的输入作为例子吗? – Frederic

+0

联系人姓名:dusre:rage是文本,我需要dusre:rage作为关键联系人姓名的值,但截至目前它只给出dusre作为值。 –

0

看起来,Pig把Input作为字符串,它不那么聪明以便确定数据是什么或不是什么。

猪存储在强Tokenizer上工作。所以,如果ü要像做

a = LOAD '/abc/def/file.txt' USING PigStorage(':');

它不会似乎是解决你的问题。但是如果我们可以编写我们自己的PigStorage()方法,我们可能会遇到一些解决方案。

我会尝试发布代码来解决这个问题。

0

你可以使用STRSPLIT(string,regex,limit);用于基于分隔符的列拆分。