如何在PuTTY终端下载公开S3文件并导入Hive表?
解决S3文件下载及Hive导入问题
第一步:修正AWS S3下载命令
你当前的aws s3 cp命令格式错误,AWS CLI识别的S3资源路径需用s3://协议,且参数顺序有误。执行以下正确命令:
aws s3 cp s3://ml-cloud-dataset.s3.amazonaws.com/Airlines_data.txt /home/hadoop/Airlines_data.txt
- 替换原https链接为
s3://开头的标准S3路径,这是AWS CLI的规范格式 - 指定完整的目标文件路径,避免路径解析混乱
第二步:备选下载方案(绕开AWS CLI权限问题)
如果AWS CLI配置有问题,且该S3文件是公开可读的,直接用wget下载:
wget https://ml-cloud-dataset.s3.amazonaws.com/Airlines_data.txt -P /home/hadoop/
第三步:Hive建表及数据导入
文件下载完成后,按以下步骤操作:
- 登录Hive,创建适配数据格式的表(示例,需根据实际数据结构调整字段和分隔符):
CREATE EXTERNAL TABLE airlines_data ( flight_date STRING, airline_code STRING, origin STRING, destination STRING, delay_minutes INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' -- 替换为数据实际使用的分隔符 LOCATION '/user/hadoop/airlines_data';
- 将本地文件上传到HDFS对应路径:
hdfs dfs -put /home/hadoop/Airlines_data.txt /user/hadoop/airlines_data/
- 验证数据是否成功导入:
SELECT * FROM airlines_data LIMIT 10;
内容的提问来源于stack exchange,提问作者Subham Sahare
相关产品推荐
相关产品推荐

