使用交互模式从s3中的制表符分隔文件创建配置单元表

时间:2013-07-14 13:33:43

标签: amazon-web-services amazon-s3 hive elastic-map-reduce

我已将制表符分隔的文件加载到S3中,这些文件夹位于存储桶下: 桶 - > se - > y = 2013 - > m = 07 - > d = 14 - > H = 00

每个子文件夹都有1个文件,代表我的流量小时。

然后我创建了一个EMR工作流程,以便在具有配置单元的交互模式下运行。

当我登录主人并进入配置单元时,我运行此命令:

CREATE EXTERNAL TABLE se (
id bigint,
oc_date timestamp)
partitioned by (y string, m string, d string, h string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION 's3://bi_data';

我收到此错误消息:

  

失败:元数据错误:java.lang.IllegalArgumentException:The   在列表中列出对象时必须指定存储桶名称参数

     

FAILED:执行错误,返回代码1   org.apache.hadoop.hive.ql.exec.DDLTask

有人可以帮忙吗?

更新 的 即使我只尝试使用字符串字段,我也会得到同样的错误。 使用字符串创建表:

CREATE EXTERNAL TABLE se (
id string,
oc_date string)
partitioned by (y string, m string, d string, h string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION 's3://bi_data';

Hive版本0.8.1.8

1 个答案:

答案 0 :(得分:13)

所以,解决方案是我犯了两个错误:

  1. 当只编写存储桶名称时,S3路径中应该有一个尾部斜杠。 参考here

  2. 下划线也是一个问题,存储桶名称应符合DNS标准。

  3. 希望我帮助过这个人。