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
>
>
>