如何从猪的字符串中替换'$'?

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,'\\\$','')

【讨论】:

以上是关于如何从猪的字符串中替换'$'?的主要内容,如果未能解决你的问题,请参考以下文章

从猪心移植患者到攻克肿瘤难题,基因编辑距离大规模落地还有多远?|量子位·对撞派 × 辉大基因...

如何在猪的时间序列中计算

如何将输入模式附加到猪的输出

js 中如何替换字符串?

js 中如何替换字符串例如:

如何替换掉字符串里的空格?