Hive -e 和 regex 替换 udf 问题

Hive -e and regex replace udf issue

我正在 MapR 发行版中开发 Hive 0.13。当我 运行 使用配置单元 -e 选项在配置单元中执行以下查询时,我看到一个奇怪的问题。

以下是我的查询:

select regexp_replace(',825.48','\$|\,','');

当我直接从配置单元 shell 运行 并给出所需的输出 60825.48.

时,上述查询工作正常

现在,当我 运行 同样 使用配置单元 -e 时,如下所示:

hive -e "select regexp_replace(',825.48','\$|\,','');"
Total MapReduce CPU Time Spent: 890 msec
OK
0825.48
Time taken: 7.813 seconds, Fetched: 1 row(s)

"6" 从所需的输出中删除。

此外,同样适用于 Hive -f 选项。

你能帮我找出问题所在吗?

试试这个

hive -e 'select regexp_replace(",825.48","\$|\,","");'

如果您的 objective 是要删除除数字和“.”之外的所有内容,那么您也可以试试这个

hive -e 'select regexp_replace(",825.48","[^0-9.]","");'