我已将制表符分隔的文件加载到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
答案 0 :(得分:13)
所以,解决方案是我犯了两个错误:
当只编写存储桶名称时,S3路径中应该有一个尾部斜杠。 参考here
下划线也是一个问题,存储桶名称应符合DNS标准。
希望我帮助过这个人。