我试图使用hue接口将数据从在线数据集加载到我的配置单元表中,但得到的是空值。
以下是我的数据集:
https://www.kaggle.com/psparks/instacart-market-basket-analysis?select=aisles.csv
这是我的密码:
CREATE TABLE IF NOT EXISTS AISLES (aisles_id INT, aisles STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE
tblproperties("skip.header.line.count"="1");
我是这样加载数据的:
LOAD DATA LOCAL INPATH '/home/hadoop/aisles.csv' INTO TABLE aisles;
我的变通方法,但不可行:
FIELDS TERMINATED BY ','
FIELDS TERMINATED BY '\t'
FIELDS TERMINATED BY ''
FIELDS TERMINATED BY ' '
也尝试过移除 LINES TERMINATED BY '\n'
我是这样下载数据的:
[hadoop@ip-172-31-76-58 ~]$ wget -O aisles.csv "https://www.kaggle.com/psparks/instacart-market-basket-analysis?select=aisles.csv"
--2020-10-14 23:50:06-- https://www.kaggle.com/psparks/instacart-market-basket-analysis?select=aisles.csv
Resolving www.kaggle.com (www.kaggle.com)... 35.244.233.98
Connecting to www.kaggle.com (www.kaggle.com)|35.244.233.98|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘aisles.csv’
我检查了我创建的表的位置这就是它所说的;
hdfs://ip-172-31-76-58.ec2.internal:8020/user/hive/warehouse/aisles
我尝试浏览目录并查看文件的保存位置:
[hadoop@ip-172-31-76-58 ~]$ hdfs dfs -ls /user/hive/warehouse
Found 1 items
drwxrwxrwt - arjiesaenz hadoop 0 2020-10-15 00:57 /user/hive/warehouse/aisles
所以,我试着像这样改变我的加载脚本;
LOAD DATA INPATH '/user/hive/warehouse/aisles.csv' INTO TABLE aisles;
但我有个错误:
Error while compiling statement: FAILED: SemanticException line 6:61 Invalid path ''/user/hive/warehouse/aisles.csv'': No files matching path hdfs://ip-172-31-76-58.ec2.internal:8020/user/hive/warehouse/aisles.csv
希望有人能帮我找出代码的问题。
谢谢。
2条答案
按热度按时间a5g8bdjr1#
我找到了一个解决方法,下载数据集并将其上传到amazons3 bucket中,并在load命令中使用s3路径。
pb3skfrl2#
我在hadoop集群上也尝试了同样的方法。代码没有任何问题。以下是我的执行片段:
我认为您需要交叉检查数据集aisles.csv是否位于hdfs位置,而不是存储在本地目录中。
问题是你的加载命令。
我看到你试图浏览目录来查看保存的文件。你看到那个目录下的aisles.csv了吗?如果文件在那里,那么您在load cmd中给出了错误的路径,否则文件根本就不在那里。