0
我有一个配置单元表,我想用下划线('_')替换连字符(' - ')。 示例查询是:如何替换表名中的连字符(短划线)?
CREATE TABLE test_${yearAndMonth} ......
INSERT OVERWRITE TABLE test_${yearAndMonth} ......
在 'yearAndMonth' 包含类似值:2017-05;所以,我想要表格名称为test_2017_05;然而,'年和月'必须包含连字符值。
我有尝试:正则表达式替换 例如:
CREATE TABLE test_${regexp_replace(yearAndMonth, '-', '_')} ......
INSERT OVERWRITE TABLE test_${regexp_replace(yearAndMonth, '-', '_')} ......
但是,我得到的错误是:
无法识别附近 'TEST_' 输入 '$' '{' 表呐我
请任何建议。
更新: 在这种尝试是这样:
CREATE TABLE test_regexp_replace(${yearAndMonth}, "-", "_") ......
INSERT OVERWRITE TABLE test_regexp_replace(${yearAndMonth}, "-", "_") ......
我收到此错误: 疏漏之处 '(' 近 'test_regexp_replace'
**(1)**您对Hive变量有什么误解。检查https://stackoverflow.com/questions/42887401/storing-result-of-query-in-hive-variable/42887453#42887453。 **(2)**您必须以正确的格式传递变量。 –