2016-05-18 56 views
0

我想使用java代码执行配置单元命令。我的配置单元安装在linux虚拟机上,java代码位于作为客户端的远程Windows机器上。我能够成功调用配置单元命令,如:
hive -e'Select * from mytable;'

但是,当我尝试使用加载命令的语法如下:
hive -e'LOAD DATA LOCAL INPATH'/home/mapr/file.csv'INTO TABLE mytable;'

这引发了我一个错误说“失败:ParseException的线不匹配1:23输入‘/’负载声明中预期近串文字‘INPATH’”
使用hive -e'<hive命令>'执行配置单元加载命令'

这似乎是一个可能的文件路径附近的语法错误转义字符问题,因为我能够执行“Select * from mytable”而没有错误。 任何人都可以帮我使用配置单元加载命令的语法使用配置单元-e?

回答

0

通过查看您的错误消息,很明显,您正在使用单引号转义字符两次,并扩大您的配置单元命令。

因此,现在使用单引号和双引号来区分转义字符,它将起作用。

新蜂箱声明可以在下面给出:

hive -e 'LOAD DATA LOCAL INPATH "/home/mapr/file.csv" INTO TABLE mytable;' 

希望这可以帮助您!

+0

荣誉@Farooque,它的工作,非常感谢。 –