hadoop SQL查询中的Bash变量,原因:异常:语法错误

iaqfqrcu  于 2023-05-16  发布在  Hadoop
关注(0)|答案(1)|浏览(86)

我有一个shell脚本,通过impala将文件中的数据插入到Hive表中。

#declare variables
YEAR=$(date +"%Y")
MONTH=$(date +"%-m")
DAY=$(date +"%-d") 
.....

$IMPALA_CONNECTION -q "LOAD DATA INPATH '$HDFS_DIR/text_file.txt' INTO TABLE db.tbl_stg;
INSERT INTO db.tbl PARTITION(year, month, day) SELECT rest, of, sql, $YEAR, $MONTH, $DAY FROM 
db.tbl_stg;

错误:ParseException:第1行语法错误:...,2023,5,9 FROM db.tbl_stg...^由于某种原因,它不喜欢$DAY变量,因为如果我硬编码9,它可以完美地工作。
这是如果我回显查询:

impala-shell -k --ssl -i pserver:21000 --ca_cert=path_to_cert.pem -q 
LOAD DATA INPATH '$hdfs_path_here/impala_query_hist.txt' INTO TABLE 
db.tbl_stg;

INSERT INTO db.tbl PARTITION(year, month, day) SELECT ......, ...., 
memory_accrual, ddl_type, rows_inserted, hdfs_bytes_written, 2023, 5, 9  
FROM db.tbl_stg;
rxztt3cl

rxztt3cl1#

谢谢大家的有益的意见。在变量DAY=$(date +"%-d”)的末尾有一个额外的空格。如果你在我最初的问题帖子中突出显示那盏灯,你就可以看到它。删除多余的空间后,一切都工作

相关问题