Java 有关配置单元中EOF的语法异常

Java 有关配置单元中EOF的语法异常,java,hive,Java,Hive,我可以在shell中执行SQL: LOAD DATA LOCAL INPATH '/tmp/sql.txt' INTO TABLE files; 下面是sql.txt中的内容: 4e6c924a-1fa2-4326-86eb-975d1007f0a6 FileScoreConverterTest.java /home/xiehaozhe/Development/Kloud-Document-Analyzer/kda/src/test/java/com/kda/filescore/type/Fi

我可以在shell中执行SQL:

LOAD DATA LOCAL INPATH '/tmp/sql.txt' INTO TABLE files;
下面是sql.txt中的内容:

4e6c924a-1fa2-4326-86eb-975d1007f0a6 FileScoreConverterTest.java /home/xiehaozhe/Development/Kloud-Document-Analyzer/kda/src/test/java/com/kda/filescore/type/FileScoreConverterTest.java
ab6ee610-c980-4ff7-b472-8546766e0f89 FileWordCountConverterTest.java /home/xiehaozhe/Development/Kloud-Document-Analyzer/kda/src/test/java/com/kda/filescore/type/FileWordCountConverterTest.java
表的结构(命名文件)为

如果我用Java执行sql,我会得到一个异常:

Exception in thread "main" java.sql.SQLException: Query returned non-zero code: 40000, cause: FAILED: ParseException line 1:54 mismatched input ';' expecting EOF near 'files'
代码如下:

Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");
String sql = "LOAD DATA LOCAL INPATH '" + sqlFilePath + "' INTO TABLE files;";
Connection connection = DriverManager.getConnection(databaseAddress, databaseUsername, databasePassword);
Statement statement = connection.createStatement();
statement.executeQuery(sql);

我应该怎么做?

在shell中编写查询时,应该使用“;”在SQL语句的末尾:

LOAD DATA LOCAL INPATH '/tmp/sql.txt' INTO TABLE files;
但是,不能使用“;”使用Java时,在SQL语句末尾:

LOAD DATA LOCAL INPATH '/tmp/sql.txt' INTO TABLE files
所以,这就是导致异常的原因

LOAD DATA LOCAL INPATH '/tmp/sql.txt' INTO TABLE files