Apache pig 如何转义value-pig脚本中的分隔符?

Apache pig 如何转义value-pig脚本中的分隔符?,apache-pig,Apache Pig,在pig脚本中,我想找到一种方法来转义数据中的分隔符,这样它就不会被解释为额外的列。例如,如果我使用冒号作为定界符,并且我有一个值为“fo:bar”的列,我希望字符串被解释为单个列,而没有加载程序在中间拾取逗号。 可以尝试 正则表达式可能需要调整。您可以尝试 正则表达式可能必须进行调整。似乎Pig将输入作为字符串,它不太智能,无法识别什么是数据,什么不是数据 清管器存储在强标记器上工作。所以如果你想做类似的事情 a=使用PigStorage(“:”)加载“/abc/def/file.txt”

在pig脚本中,我想找到一种方法来转义数据中的分隔符,这样它就不会被解释为额外的列。例如,如果我使用冒号作为定界符,并且我有一个值为“fo:bar”的列,我希望字符串被解释为单个列,而没有加载程序在中间拾取逗号。

可以尝试

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

您可以尝试


正则表达式可能必须进行调整。

似乎Pig将输入作为字符串,它不太智能,无法识别什么是数据,什么不是数据

清管器存储在强标记器上工作。所以如果你想做类似的事情

a=使用PigStorage(“:”)加载“/abc/def/file.txt”

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


我将尝试发布代码以解决此问题

Pig似乎将输入作为字符串,它不太智能,无法识别什么是数据,什么不是数据

清管器存储在强标记器上工作。所以如果你想做类似的事情

a=使用PigStorage(“:”)加载“/abc/def/file.txt”

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


我将尝试发布代码以解决此问题

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

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

谢谢Fred,但我的输入是键和值的文本文件。您可以发布几行输入作为示例吗?联系人姓名:dusre:rage是文本,我需要dusre:rage作为键联系人姓名的值,但到目前为止,它只提供dusre作为值。请查看我的新回答谢谢Fred,但是我的输入是键和值的文本文件。你能发布几行输入作为示例吗?联系人姓名:dusre:rage是文本,我需要dusre:rage作为键联系人姓名的值,但到目前为止,它只提供dusre作为值。请查看我的新回答谢谢Fred,但是我的输入是键和值的文本文件。你能发布几行输入作为示例吗?联系人姓名:dusre:rage是文本,我需要dusre:rage作为键联系人姓名的值,但到目前为止,它只给出dusre作为值。请查看我的新答案
A = LOAD 'somefile' AS (s:chararray);
B = FOREACH A GENERATE FLATTEN(REGEX_EXTRACT_ALL(s, '(.*) : (.*)'));