微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将数据从外部 s3 存储桶 url 链接导入 hive 表

如何解决将数据从外部 s3 存储桶 url 链接导入 hive 表

我需要从与我共享 url 的公共 s3 存储桶中导入数据。如何将数据加载到hive表中? 我试过下面的命令,但它不起作用:

create external table airlines_info (.... ) row format 
delimited fields terminated by '|' lines terminated by '\n'
stored as textfile location 'https://ml-cloud-dataset.....*.txt';

失败:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。 MetaException(消息:ml-cloud-dataset.s3.amazonaws.com/Airlines_data.txt 不是目录或无法创建目录)

我对 hive 很陌生,我不确定代码。在创建表以将数据加载到配置单元表后,我也尝试了下面的代码,但这也不起作用

load data inpath 'https://ml-cloud-dataset.....*.txt' into table airlines_info;

解决方法

表位置应该是 HDFS 或 S3 中的目录,而不是文件和 https 链接。

手动下载文件,放入本地文件系统,如果您已经创建了表,则使用

load data local inpath  'local_path_to_file' into table airlines_info;

如果您还没有该表,请创建它并在您的 S3 中指定某个位置,或者创建管理表(从您的 DDL 中删除 EXTERNAL),如果没有指定位置,它将为您创建位置,使用 DESCRIBE 检查位置FORMATTED 命令,稍后您可以根据需要使用 ALTER TABLE airlines_info SET TBLPROPERTIES('EXTERNAL'='TRUE');

将表转换为 EXTERNAL

您可以使用 AWS CLI(提供正确的本地路径和表目录 S3 URL)将文件复制到表位置,而不是 load data 命令:

aws s3 cp C:\Users\My_user\Downloads\Airlines_data.txt s3://mybucket/path/airlines_info/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?