从 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;
我的本地机器上有一个 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;