【问题标题】:Inserting local csv to a Hive table from Qubole从 Qubole 将本地 csv 插入 Hive 表
【发布时间】:2017-01-07 05:15:42
【问题描述】:

我的本​​地机器上有一个 csv,我通过 Qubole Web 控制台访问 Hive。我正在尝试将 csv 作为新表上传,但无法弄清楚。我尝试了以下方法:

LOAD DATA LOCAL INPATH <path> INTO TABLE <table>;

我收到错误消息No files matching path file

我猜测 csv 必须位于实际运行 hive 的某个远程服务器中,而不是在我的本地计算机上。我看到的解决方案没有解释如何处理这个问题。有人可以帮我注册吗?这?

【问题讨论】:

    标签: hadoop hive qubole


    【解决方案1】:

    Qubole 允许您在云存储(s3 或 azure 存储)上的数据上定义 hive 外部/托管表 - 因此从本地盒中加载将不起作用。您必须将其上传到您的云存储上,然后针对它定义一个外部表 -

    CREATE External TABLE orc1ext(
      `itinid` string, itinid1 string)
    stored as ORC
    LOCATION
      's3n://mybucket/def.us.qubole.com/warehouse/testing.db/orc1';
    
    INSERT INTO TABLE orc1ext SELECT itinid, itinid 
    FROM default.default_qubole_airline_origin_destination LIMIT 5;
    

    【讨论】:

      【解决方案2】:

      首先,使用 csv 文件中存在的字段名称在 hive 上创建一个表。您使用的语法似乎是正确的。 使用以下语法创建表

       CREATE TABLE foobar(key string, stats map<string, bigint>)
       ROW FORMAT DELIMITED
       FIELDS TERMINATED BY ','
       COLLECTION ITEMS TERMINATED BY '|'
       MAP KEYS TERMINATED BY ':' ;
      

      然后使用以下格式加载数据,然后正确提及路径名称

      LOAD DATA LOCAL INPATH '/yourfilepath/foobar.csv' INTO TABLE foobar;
      

      【讨论】:

      • 我就是这么做的。问题中没有包含创建表查询,因为问题出在第二个命令上。
      猜你喜欢
      • 1970-01-01
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      • 2016-01-20
      • 2019-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多