Hive 在配置单元中的变量上运行regrex_replace
我正在使用以下命令将配置单元中的日期字符串从Hive 在配置单元中的变量上运行regrex_replace,hive,Hive,我正在使用以下命令将配置单元中的日期字符串从2017-02-21T11:28:36更改为2017-02-21 11:28:36 SELECT regexp_replace('2017-02-21T11:28:36', 'T', " "); 输出正确,如2017-02-21 11:28:36。现在,我的输入日期字符串存储在READ\u START\u date变量中 hive>SET READ_START_DATE;
2017-02-21T11:28:36
更改为2017-02-21 11:28:36
SELECT regexp_replace('2017-02-21T11:28:36', 'T', " ");
输出正确,如2017-02-21 11:28:36
。现在,我的输入日期字符串存储在READ\u START\u date
变量中
hive>SET READ_START_DATE;
READ_START_DATE=2017-02-21T11:28:36
现在我正在运行这个命令
SELECT regexp_replace('${READ_START_DATE}', 'T', " ");
此命令的输出是${READ\u S AR\u DA E}
这是有道理的,但我需要对变量运行
regrex\u replace
命令。我该怎么做?${hiveconf:READ\u START\u DATE}尝试使用双引号
SELECT regexp_replace("${READ_START_DATE}", 'T', " ");
它使用的是不同的环境变量,但不确定为什么不使用“READ\u START\u DATE”,dudu有什么想法吗
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)
它使用了不同的变量,因此建议使用它,无论如何,上面的答案非常通用,下面是我的try-hive(默认)>set-system:java.vm.version;system:java.vm.version=24.65-b04配置单元(默认)>选择regexp_extract(${system:java.vm.version},'.-(.*));正常_C0B04所用时间:0.076秒,获取:1行
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)