beeline -e "SELECT from_unixtime(cast(utc_to_timestamp(one.time/1000,'GMT-8')as bigint),'yyyy-MM-dd') FROM my_table one;" 不能识别one . /,但使用beeline -f 就可以执行
时间: 2024-04-23 08:23:39 浏览: 131
查询指定时间段的数据
根据您提供的信息,我可以初步判断是因为在beeline命令行中,使用-e参数后跟的是一个字符串,而不是一个文件,因此无法使用one变量。
而在使用-f参数时,beeline会读取指定的脚本文件,并将其中的内容作为输入,因此可以使用one变量。
如果您仍然想使用-e参数,并且需要使用变量,可以尝试在字符串中使用双引号,例如:
beeline -e "SELECT from_unixtime(cast(utc_to_timestamp(\${one}.time/1000,'GMT-8')as bigint),'yyyy-MM-dd') FROM my_table;" --hivevar one=one
其中--hivevar参数指定了要传递给查询的变量one,并将其设置为one。在查询中,可以使用${one}来引用该变量。
阅读全文