Hive 为什么配置单元中的串联返回错误?

Hive 为什么配置单元中的串联返回错误?,hive,string-concatenation,amazon-emr,Hive,String Concatenation,Amazon Emr,我使用hive(Amazon Elastic Map Reduce)中的concat函数指定S3 bucket的路径(dval是日期值,将自动更改): 服务器返回以下错误: 失败:ParseException行4:9不匹配的输入“concat”,应在表位置规范中的“LOCATION”附近使用StringLiteral 据我所知,hive将pthstring变量读取为包含函数的字符串,而不是concat函数的结果。如何修复它?请注意,concat()是内置的配置单元字符串函数,可以应用于列字段的查

我使用hive(Amazon Elastic Map Reduce)中的
concat
函数指定S3 bucket的路径(dval是日期值,将自动更改):

服务器返回以下错误:

失败:ParseException行4:9不匹配的输入“concat”,应在表位置规范中的“LOCATION”附近使用StringLiteral

据我所知,hive将pthstring变量读取为包含函数的字符串,而不是
concat
函数的结果。如何修复它?

请注意,concat()是内置的配置单元字符串函数,可以应用于列字段的查询中,而不是使用配置单元变量

像这样使用:

hive (default)> set dval=03;                                            
hive (default)> set pthstring=s3://mybucket/${hiveconf:dval}/;  
hive (default)> set dval;  ---------> gives : dval=03    
hive (default)> set pthstring; ----> gives : pthstring=s3://mybucket/03/
hive (default)> set dval=03;                                            
hive (default)> set pthstring=s3://mybucket/${hiveconf:dval}/;  
hive (default)> set dval;  ---------> gives : dval=03    
hive (default)> set pthstring; ----> gives : pthstring=s3://mybucket/03/