hive-e和regex替换udf问题

k97glaaz  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(279)

我正在mapr发行版的hive0.13上工作。当我在hive中使用hive-e选项运行以下查询时,我看到了一个奇怪的问题。
以下是我的疑问:

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

当我直接从hiveshell运行时,上面的查询可以正常工作,并给出所需的输出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选项也可以。
你能帮我找出问题所在吗?

qvtsj1bj

qvtsj1bj1#

试试这个

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

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

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

相关问题