我已经将选项卡分隔的文件加载到S3中,其中bucket下有这种类型的文件夹:铲斗-->se-->y=2013-->m=07-->d=14-->h=00
每个子文件夹有1个文件,表示我的流量小时。
然后,我创建了一个电子病历工作流,以便在与配置单元的交互模式下运行。
当我登录到主机并进入蜂箱时,我运行以下命令:
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.IollegalArgumentException:在bucket 中列出对象时,必须指定bucket名称参数
失败:执行错误,返回代码1org.apache.hadoop.hive.ql.exec.DLL任务
有人能帮忙吗?
更新即使我尝试只使用字符串字段,我也会得到同样的错误。创建带有字符串的表:
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';
配置单元版本0.8.1.8
所以,解决方案是我犯了两个错误:
-
当只写bucket名称时,S3路径中应该有一个尾部斜杠。此处参考
-
下划线也是一个问题,bucket名称应该符合DNS。
希望我帮过别人。