Java 在windows中使用文件路径加载数据查询配置单元

Java 在windows中使用文件路径加载数据查询配置单元,java,hadoop,hive,Java,Hadoop,Hive,我正试图通过java程序在hive中加载数据。我正在从我的机器加载文件 stmt.executeQuery("load data local inpath 'file:///C:/sample/Documents/sample1.txt' into table " + tablename); 当我执行这个程序时,我得到以下异常 Caused by: java.lang.RuntimeException: java.net.URISyntaxException:Expected scheme

我正试图通过java程序在hive中加载数据。我正在从我的机器加载文件

stmt.executeQuery("load data local inpath  'file:///C:/sample/Documents/sample1.txt'  into table " + tablename);

当我执行这个程序时,我得到以下异常

Caused by: java.lang.RuntimeException: java.net.URISyntaxException:Expected scheme-specific part at index 2: C:
    at java.net.URI$Parser.fail(URI.java:2829)
    at java.net.URI$Parser.failExpecting(URI.java:2835)
    at java.net.URI$Parser.parse(URI.java:3038)
    at java.net.URI.<init>(URI.java:753)
数据已正确加载到配置单元数据库

当我在windows中执行该程序时,会出现异常。如何解决这个问题?

windows中的路径(Uri)语法与ubuntu不同。在ubuntu中我们使用正斜杠,而在windows中我们使用反斜杠

Windows:C:\Users\system\Desktop\db

Linux:/home/sample/sample1.txt'


因此,请尝试更改uri的语法。

我想您需要先将数据从本地发送到Hadoop。为此,请搜索hadoop fs-put的Java API equi,一旦数据进入hadoop,您就可以轻松加载数据了。@abhiieor ya从HDFS我可以访问该文件。我的疑问是,当我在Ubuntu机器上执行程序时,当我尝试在windows中单独更改文件路径时,该程序是否正常工作,它会显示上述异常。我正在我更改路径时出现以下异常。原因:java.lang.RuntimeException:java.net.URISyntaxException:absolute Uri中的相对路径我认为您使用的是local关键字和file://。尝试以下操作:在路径“C:\sample\Documents\sample1.txt”中加载本地数据。当您使用local关键字时,无需提及文件系统。当我给出这样的路径“C:\sample\Documents\sample1.txt”时,我会得到错误,就像无效的转义序列一样,所以尝试了这样的“C:\\sample\\Documents\\sample1.txt”,但我仍然会得到相同的异常,并且我从路径中删除了文件:。我认为它应该可以工作。尝试使用双精度路径的引号。
stmt.executeQuery("load data local inpath  '/home/sample/sample1.txt'  into table " + tablename);