如何从猪的字符串中替换'$'?
Posted
技术标签:
【中文标题】如何从猪的字符串中替换\'$\'?【英文标题】:How to replace '$' from string in pig?如何从猪的字符串中替换'$'? 【发布时间】:2016-01-23 18:24:04 【问题描述】:我们知道要替换单词,我们可以使用 REPLACE 关键字,如下所示...
RELATION = FOREACH data GENERATE REPLACE(string,'a','b');
以上语句将所有“a”字母替换为“b”。
但是如果我想替换美元符号($)。那我该怎么做呢?因为在 Pig '$' 中表示没有列。举个例子,如果想用 '$1234.56' 这样的字符串替换 '$' 并想要像 '1234.56' 这样的输出。
RELATION = FOREACH data GENERATE REPLACE(string,'$','');
但这对我不起作用。
有人可以帮忙吗?提前致谢。
【问题讨论】:
***.com/q/14269913/1927206 我没有从 ***.com/q/14269913/1927206 得到解决方案。你能举个例子来替换字符串中的'$'吗? 没有。我对 PIG 一无所知。你能用建议的结果更新你的问题吗?您是否尝试过以十六进制、八进制、二进制或其他方式指定 $(您知道我的意思)。文档?同事?另请记住,现在是周末,接下来的几天可能会有更多人看到您的问题,如果您尝试一下,您也许可以在很久之前自己解决问题。 【参考方案1】:使用 Unicode:
REPLACE(string,'\u0024','')
【讨论】:
不,布赖恩,它不起作用。我还尝试了 '\$'、'\\$' 和您的解决方案。【参考方案2】:查看 Java 中的字符串正则表达式会很有帮助,例如:https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
在您的特定情况下,您可以使用以下内容:
REPLACE(string, '[$]', '')
为了提高灵活性(例如在处理其他货币类型时),最好删除除“.”之外的所有非数字字符。在这种情况下使用:
REPLACE(string, '[^\\d.]', '')
【讨论】:
【参考方案3】:这对我有用:(三个反斜杠)
REPLACE(string,'\\\$','')
【讨论】:
以上是关于如何从猪的字符串中替换'$'?的主要内容,如果未能解决你的问题,请参考以下文章