为什么在ApachePig中使用replace函数时出错?

为什么在ApachePig中使用replace函数时出错?,replace,apache-pig,patch,Replace,Apache Pig,Patch,我正在执行以下命令 TestData = FOREACH records Generate From as from, MsgId as Msg, REPLACE(toAddress,';' , ','); 我得到以下错误 错配字符 “”应为“””2014-04-14 12:27:56863[main]错误 org.apache.pig.tools.grunt.grunt-错误1200:字符“”不匹配 应为“”“ 可能是因为,;性格如果是这样,那么如何为其应用补丁。在我看来,Pig0.11.0

我正在执行以下命令

TestData = FOREACH records Generate From as from, MsgId as Msg, REPLACE(toAddress,';' , ',');
我得到以下错误

错配字符 “”应为“””2014-04-14 12:27:56863[main]错误 org.apache.pig.tools.grunt.grunt-错误1200:字符“”不匹配 应为“”“


可能是因为,;性格如果是这样,那么如何为其应用补丁。

在我看来,Pig
0.11.0-cdh4.3.0
不包括。
您需要修补并重建Pig以使其正常工作(从此处下载修补程序:),或者作为一种解决方法,您可以基于
org.apache.Pig.builtin.REPLACE

例如:


也可以通过使用清管器内置功能来实现。 使用Unicode转义序列,而不是替换函数调用中的特殊字符。 对于上述问题,请使用:

REPLACE (toAddress,'\\\\u003b','\u002c')
代替:

REPLACE(toAddress,';' , ',')

好了,这个错误已经在猪身上修复了。您使用哪个版本?我使用的是cloudera提供的ApachePig版本0.11.0-cdh4.3.0(rexported)。这是我的QA集群。我有一个生产集群,replace正在其上工作……即ApachePig版本0.11.0-cdh4.6.0(rexported)。你能帮我解决这个问题吗,因为我的QA集群因为这个错误而关闭了。非常感谢你…你的回答很有帮助。:)
REPLACE (toAddress,'\\\\u003b','\u002c')
REPLACE(toAddress,';' , ',')