You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hive.apache.org by Jone Lura <jo...@ecc.no> on 2014/02/28 10:22:03 UTC
Exception
Hi all,
I am trying to understand why I receive the following exception;
java.sql.SQLException: Error while processing statement: FAILED: SemanticException Line 1:23 Invalid path ''/Users/jonelura/tmp/dual1676162777709284665.csv'': No files matching path file:/Users/jonelura/tmp/dual1676162777709284665.csv
at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:161)
at org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:149)
at org.apache.hive.jdbc.HivePreparedStatement.executeImmediate(HivePreparedStatement.java:187)
at org.apache.hive.jdbc.HivePreparedStatement.execute(HivePreparedStatement.java:137)
at no.ecc.nais.io.storage.HiveSQLStorage.createDualTable(HiveSQLStorage.java:545)
...
...
I have two computers.
Computer A - Running Hadoop (1.2.1) and Hiveserver (0.11.0) and web application myApp, connected to Hive with Hive JDBC driver 0.11.0
Computer B - Running web application myApp connected to Hive with Hive JDBC driver 0.11.0
The exception above is thrown on Computer B, whilst Computer A works fine.
The SQL for loading the data is;
LOAD DATA LOCAL INPATH '/Users/jonelura/tmp/dual1676162777709284665.csv' OVERWRITE INTO TABLE dual
For some reason it looks for the /Users/jonelura/tmp/dual1676162777709284665.csv on Computer A (Hive and Hadoop), instead of Computer B (where the file exists)
Is there another load syntax I should have used?
Best regards,
Jone
Re: Exception
Posted by David Gayou <da...@kxen.com>.
Hello,
The "LOAD DATA LOCAL INPATH ..." will search the file into the local file
system of the server where Hive is running, ie computer A for you.
"LOAD DATA INPATH" will look for the file into the hadoop file system.
More information here :
<goog_1319724303>
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML
And i have no clue how to actually insert the data only through the jdbc
client.
Regards
David
On Fri, Feb 28, 2014 at 10:22 AM, Jone Lura <jo...@ecc.no> wrote:
> Hi all,
>
> I am trying to understand why I receive the following exception;
>
> java.sql.SQLException: Error while processing statement: FAILED:
> SemanticException Line 1:23 Invalid path
> ''/Users/jonelura/tmp/dual1676162777709284665.csv'': No files matching path
> file:/Users/jonelura/tmp/dual1676162777709284665.csv
> at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:161)
> at org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:149)
> at
> org.apache.hive.jdbc.HivePreparedStatement.executeImmediate(HivePreparedStatement.java:187)
> at
> org.apache.hive.jdbc.HivePreparedStatement.execute(HivePreparedStatement.java:137)
> at
> no.ecc.nais.io.storage.HiveSQLStorage.createDualTable(HiveSQLStorage.java:545)
> ...
> ...
>
> I have two computers.
>
> Computer A - Running Hadoop (1.2.1) and Hiveserver (0.11.0) and web
> application myApp, connected to Hive with Hive JDBC driver 0.11.0
>
> Computer B - Running web application myApp connected to Hive with Hive
> JDBC driver 0.11.0
>
> The exception above is thrown on Computer B, whilst Computer A works fine.
>
> The SQL for loading the data is;
>
> LOAD DATA LOCAL INPATH '/Users/jonelura/tmp/dual1676162777709284665.csv'
> OVERWRITE INTO TABLE dual
>
> For some reason it looks for the
> /Users/jonelura/tmp/dual1676162777709284665.csv on Computer A (Hive and
> Hadoop), instead of Computer B (where the file exists)
>
> Is there another load syntax I should have used?
>
> Best regards,
>
> Jone
>
>
>