从 Qubole 将本地 csv 插入 Hive table

Inserting local csv to a Hive table from Qubole

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

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

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

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

首先,使用您正在使用的 csv file.syntax 中的字段名称在配置单元上创建一个 table,这似乎是正确的。 使用以下语法创建 table

 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;

Qubole 允许您在云存储(s3 或 azure 存储)上的数据上定义配置单元 external/managed tables - 因此从您的本地盒子加载将不起作用。您必须将其上传到您的云存储,然后针对它定义一个外部 table -

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;