配置单元-hiveconf-f xxx.sql错误

配置单元-hiveconf-f xxx.sql错误,sql,hive,Sql,Hive,我的sql文件内容是: CREATE EXTERNAL TABlE unLock(logTime TIMESTAMP, ystID STRING,deviceID STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe' WITH SERDEPROPERTIES ("field.delim"="$$") STORED AS TEXTFILE LOCATION concat(hdfs://

我的sql文件内容是:

CREATE EXTERNAL TABlE  unLock(logTime TIMESTAMP, ystID STRING,deviceID STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe'
WITH SERDEPROPERTIES ("field.delim"="$$")
STORED AS TEXTFILE
LOCATION concat(hdfs://hadoop1:9000/logHive/unLock/,${hiveconf:logdir});
我的shell脚本文件内容是:

hive -hiveconf logdir="$(date +'%Y/%m/%d/')" -f /home/yst/create.sql
在cmd中运行shell文件时,错误为:

FAILED: ParseException line 7:9 mismatched input 'concat' expecting StringLiteral near 'LOCATION' in table location specification

我不知道为什么。我只想知道配置单元表的位置是当前文件。

尚未测试,但这可能会起作用:


位置'hdfs://hadoop1:9000/logHive/unLock/${hiveconf:logdir}'

也失败。失败:执行错误,从org.apache.hadoop.hive.ql.exec.ddlstask返回代码1。MetaException(消息:java.lang.IllegalArgumentException:Pathname/logHive/useAppDuration/$(hiveconf:logdir)来自hdfs://hadoop1:9000/logHive/useAppDuration/$(hiveconf:logdir)不是有效的DFS文件名。)使用此选项,无法获取logdir值