Hive -e和regex取代了udf问题

时间:2016-02-18 00:07:13

标签: regex hadoop hive udf mapr

我正在使用MapR发行版中的Hive 0.13。当我使用hive -e选项在hive中运行以下查询时,我发现了一个奇怪的问题。

以下是我的询问:

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

当我直接从hive shell运行并且希望输出为 60825.48 时,上述查询正常工作。

现在,当我使用hive -e 运行相同的时,如下所示:

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

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

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

你能帮我解决一下这个问题吗?

1 个答案:

答案 0 :(得分:0)

试试这个

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

如果您的目标是删除除数字和“。”之外的所有内容,那么您也可以尝试使用

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