0

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

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

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

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

4

2 回答 2

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;
于 2017-08-30T01:29:28.113 回答
0

首先,使用 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;
于 2017-01-07T05:37:18.750 回答