在配置单元中的变量上运行regrex\u replace

kgsdhlau  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(253)

我正在更改配置单元中的日期字符串 2017-02-21T11:28:362017-02-21 11:28:36 使用以下命令。

SELECT regexp_replace('2017-02-21T11:28:36', 'T', " ");

输出正确 2017-02-21 11:28:36 . 现在我的输入日期字符串存储在 READ_START_DATE 变量。

hive>SET READ_START_DATE;                                                   
READ_START_DATE=2017-02-21T11:28:36

现在我运行这个命令

SELECT regexp_replace('${READ_START_DATE}', 'T', " ");

此命令的输出为 ${READ_S AR _DA E} 有道理,但我得走了 regrex_replace 对变量执行命令。我该怎么做?

9nvpjoqh

9nvpjoqh1#

尝试使用双引号

SELECT regexp_replace("${READ_START_DATE}", 'T', " ");

它正在使用一个不同的env变量,但不确定为什么不使用“read\u start\u date”,知道吗?

hive (default)> set system:java.vm.version;
system:java.vm.version=24.65-b04
hive (default)> select regexp_extract("${system:java.vm.version}",'.*?-(.*)');
OK
_c0
b04
Time taken: 0.076 seconds, Fetched: 1 row(s)
wf82jlnq

wf82jlnq2#

${hiveconf:read_start_date}
语言人工变量替代

hive> set READ_START_DATE=2017-02-21T11:28:36;
hive> select regexp_replace('${hiveconf:READ_START_DATE}', 'T', " ");
OK
_c0
2017-02-21 11:28:36

相关问题