我正在尝试使用java代码执行hive命令。我的hive安装在linux虚拟机上,java代码在远程windows机器上,作为客户端。我能够成功调用hive命令,如:
hive -e'从mytable中选择*;'
但是当我尝试使用带语法的load命令时:
hive -e'LOAD DATA LOCAL INPATH'/home/mapr/file.csv'INTO TABLE mytable;'
它抛出一个错误,说“FAILED:ParseException行1:23不匹配的输入'/'期望在加载语句中'INPATH'附近的StringLiteral”
这似乎是文件路径附近可能出现转义字符问题的语法错误,因为我能够无错误地执行“Select * from mytable”。 任何人都可以使用hive -e?
帮助我使用hive load命令的语法答案 0 :(得分:0)
通过查看您的错误消息,很明显您使用单引号转义字符两次并将您的hive命令组合起来。
所以现在使用单引号和双引号来区分转义字符,它会起作用。
新的蜂巢声明如下:
hive -e 'LOAD DATA LOCAL INPATH "/home/mapr/file.csv" INTO TABLE mytable;'
希望这能帮到你!!!