“Not a file” exception on select after successful insert

三世轮回 提交于 2019-12-31 05:48:06

问题


I have created a table:

DROP TABLE IF EXISTS sampleout;

CREATE EXTERNAL TABLE sampleout(
    id bigint,
    LNG FLOAT,
    LAT FLOAT,
    GMTDateTime TIMESTAMP,
    calculatedcolumn FLOAT
    )

ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 
STORED AS TEXTFILE LOCATION 'wasb://sampleout@xxxxxx.blob.core.windows.net/';

I then got a success from this query:

INSERT into TABLE   sampleout  select *, 0 as calculatedcolumn from sampletable

sampleout is the same as sampletable except for the extra column calculatedcolumn. After the successful insert, I opened the blob storage and opened the text file to verify the data is in the specified textfile location.

However...

select * from sampleout limit 10

returns the following error:

Logging initialized using configuration in file:/C:/apps/dist/hive-0.13.0.2.1.12.1-0003/conf/hive-log4j.properties
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/apps/dist/hadoop-2.4.0.2.1.12.1-0003/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/apps/dist/hbase-0.98.0.2.1.12.1-0003-hadoop2/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
OK
Failed with exception java.io.IOException:java.io.IOException: Not a file: wasb://sampleout@xxxxxx.blob.core.windows.net/hive
Time taken: 3.032 seconds

how is it that I can successfully insert, but cannot select from the table? Note that the error shows '/hive' added to the textfile location specified in the create.


回答1:


Basically, do not put the TEXTFILE LOCATION at the root. Even though it is blob storage (no true folders), the structure needed by HDFS or something else wants you to use at least one sub folder in the location.

Moving from

wasb://sampleout@xxxxxx.blob.core.windows.net/

to

wasb://sampleout@xxxxxx.blob.core.windows.net/somefolder/

fixed the issue. Credit: https://stackoverflow.com/users/4951010/andrew-moll



来源:https://stackoverflow.com/questions/30580097/not-a-file-exception-on-select-after-successful-insert

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!