我的本地机器上有一个 csv,我通过 Qubole Web 控制台访问 Hive。我正在尝试将 csv 作为新表上传,但无法弄清楚。我尝试了以下方法:
LOAD DATA LOCAL INPATH <path> INTO TABLE <table>;
我收到错误消息No files matching path file
我猜 csv 必须在配置单元实际运行的某个远程服务器中,而不是在我的本地机器上。我看到的解决方案没有解释如何处理这个问题。有人可以帮我注册吗?这?
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;
首先,使用 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;