无法上载配置单元表中的数据

vcudknz3  于 2021-06-01  发布在  Hadoop
关注(0)|答案(3)|浏览(658)

我有一张 hive 的table,如下所示,

hive> describe eslg_transaction_01;
OK

    a1 string
    a2 date
    a3 string
    a4 string
    a5 string
    a6 bigint
    a7 double
    a8 double
    a9 double
    a10 bigint
    a11 bigint
    a12 bigint
    a13 bigint
    a14 bigint
    a15 bigint
    a16 bigint
    a17 string
    a18 string

    Time taken: 0.723 seconds, Fetched: 18 row(s)

我正在尝试使用将数据上载到此表中,

hive> LOAD DATA INPATH '/user/hadoop/data/2502.txt' INTO TABLE eslg_transaction_01;

我得到以下错误:
失败:semanticexception行1:17无效路径“”/user/hadoop/data/2502.txt“”:没有与路径匹配的文件hdfs://sandbox-hdp.hortonworks.com:8020/user/data/2502.txt
我的数据显示在该位置,我可以看到:

[root@sandbox-hdp ~]#  hadoop fs -cat /user/hadoop/data/2502.txt | head -5

-200879548|2018-02-18|1485|384672|1787329|1|8.69|0|50|0|0|0|1|0|0|0||NULL
-192188296|2018-02-07|508|321131|9713410|1|0.68|0|30|0|0|0|2|0|0|1|1|2018_303
-198424071|2018-02-15|93|404120|97223|1|2|0.89|0|0|0|1|0|0|0|1|1|2018_4
-185483553|2018-01-29|131|336347|1070990|1|1.3|0.88|0|0|0|0|0|1|0|1|1|2018_3
-205064252|2018-02-23|516|21118|2610945|1|0.89|0.6|0|0|0|0|0|1|0|1|1|2018_5

有人能帮忙吗。我被困在这里了。我是hadoop/hive新手

v2g6jxz6

v2g6jxz61#

如果你在错误中看到它的路径是hdfs://sandbox-hdp.hortonworks.com:8020/user/data/2502.txt路径中缺少不正确的“hadoop”文件夹。所以,我认为这应该是许可问题。否则看起来你所做的是正确的。对于您的工作,将数据复制到默认的“warehouse”目录并将其复制到hive表。一旦您将该文件加载到配置单元表,那么该文件将在“仓库”目录中不再可用,因为它被复制到配置单元表目录。

nc1teljy

nc1teljy2#

你真的不需要使用 LOAD DATA 如果您改为定义一个位置指向原始hdfs目录的外部表。

CREATE EXTERNAL TABLE IF NOT EXISTS 
eslg_transaction_01
.... 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '|'
LOCATION '/user/hadoop/data/'

然后,您放入该数据目录的任何文件都将立即被配置单元查询

wdebmtf2

wdebmtf23#

执行以下步骤,我希望,它将工作。
(1) 将文件放入hdfs

hadoop fs -put /home/Desktop/2502.txt /user

(2) 在hdfs中显示文件

hadoop fs -ls /user

(3) 将数据加载到配置单元表

LOAD DATA INPATH '/user/2502.txt' INTO TABLE eslg_transaction_01;

相关问题