我有一个hive表,我想用下划线('_')替换连字符(' - ')。 示例查询如下:
CREATE TABLE test_${yearAndMonth} ......
INSERT OVERWRITE TABLE test_${yearAndMonth} ......
'yearAndMonth'包含的值如下:2017-05;所以,我希望将表值名称设为test_2017_05;但是,'yearAndMonth'必须包含连字符值。
我试过:正则表达式替换 例如:
CREATE TABLE test_${regexp_replace(yearAndMonth, '-', '_')} ......
INSERT OVERWRITE TABLE test_${regexp_replace(yearAndMonth, '-', '_')} ......
然而,我收到的错误是:
无法识别'test_''附近的输入''''''在表na me
请提出任何建议。
更新 尝试这样做是:
CREATE TABLE test_regexp_replace(${yearAndMonth}, "-", "_") ......
INSERT OVERWRITE TABLE test_regexp_replace(${yearAndMonth}, "-", "_") ......
我收到此错误: 在'''''test_regexp_replace'
附近缺少EOF答案 0 :(得分:0)
更改配置单元中的变量格式不是一个好主意,尝试在传递之前更改格式。执行类似于下面的操作(将id int添加为示例列,您可以添加自己的或根据需要从另一个变量传递)
hive --hiveconf table_name=table_$(date '+%Y')_$(date '+%m') -e "create table \${hiveconf:table_name}(id int); insert overwrite table \${hiveconf:table_name}"