我正在尝试使用Java代码执行蜂巢命令。我的配置单元安装在Linux虚拟机上,而Java代码位于充当客户端的远程Windows计算机上。我能够成功调用hive命令,例如:
hive -e'从mytable中选择*;'
但是,当我尝试使用带有以下语法的load命令时:
hive -e'LOAD DATA LOCAL INPATH'/home/mapr/file.csv'INTO TABLE mytable;'
它引发一个错误,提示“失败:ParseException行1:23输入'/'不匹配,并期望StringLiteral在load语句中的'INPATH'附近”
这似乎是文件路径附近的语法错误,可能是转义字符问题,因为我能够执行“ Select * from mytable”而没有错误。有人可以使用hive -e帮助我了解hive load命令的语法吗?
通过查看错误消息,很明显,您正在两次使用单引号转义字符并占用了蜂巢命令。
因此,现在使用单引号和双引号来区分转义符,它将起作用。
新的蜂巢声明可以在下面给出:
hive -e 'LOAD DATA LOCAL INPATH "/home/mapr/file.csv" INTO TABLE mytable;'
希望这对您有帮助!!!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句