【问题标题】:Not able to upload data in hive table无法在 hive 表中上传数据
【发布时间】:2018-08-28 23:30:32
【问题描述】:

我有一个如下所示的蜂巢表,

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 Line 1:17 Invalid path ''/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 的新手

【问题讨论】:

    标签: hadoop hive loaddata


    【解决方案1】:

    执行以下步骤,我希望它会起作用。

    (1) 将文件放入hdfs

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

    (2) 在 hdfs 中显示文件

    hadoop fs -ls /user
    

    (3) 将数据加载到 hive 表中

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

    【讨论】:

    • 我可以在我的 hdfs fs 中看到文件
    • 您尝试从本地复制吗?
    【解决方案2】:

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

    【讨论】:

    • 你是对的。方法是对的。由于沙箱,我将数据上传到不同的容器中,造成了一些混乱。它现在可以工作了。
    【解决方案3】:

    如果您改为定义一个带有指向原始 HDFS 目录的 LOCATION 的 EXTERNAL TABLE,则实际上不需要使用 LOAD DATA

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

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

    【讨论】:

      猜你喜欢
      • 2016-03-09
      • 2016-12-13
      • 1970-01-01
      • 2018-02-22
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多