首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在电子病历中获取s3密钥名

在电子病历中获取s3密钥名
EN

Stack Overflow用户
提问于 2015-04-27 04:27:20
回答 1查看 182关注 0票数 0

我正在EMR上运行一个EMR脚本,从s3键中提取数据。我可以得到所有的数据并把它放在一张桌子上。问题是,我需要的一些数据都在密钥名中。如何从hive内部获取密钥名并将其放入hive表中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-30 18:38:24

我最近也遇到了类似的问题。据我所研究,这取决于。您可以将数据从“目录”部分中获取,但不能从s3键的“文件名”部分获取。

如果正确格式化了partition键,则可以使用s3。可以以与列相同的方式查询partition。下面是一个带有一些示例的链接:Loading data with Hive, S3, EMR, and Recover Partitions

如果s3文件已经正确分组,您也可以自己指定分区。例如,我需要日期信息,所以我的脚本如下所示:

代码语言:javascript
复制
create external table Example(Id string, PostalCode string, State string)
    partitioned by (year int, month int, day int) 
    row format delimited fields terminated by ',' 
    tblproperties ("skip.header.line.count"="1");

alter table Example add partition(year=2014,month=8,day=1) location 's3n://{BuckeyName}/myExampledata/2014/08/01/';

alter table Example add partition(year=2014,month=8,day=2) location 's3n://{BuckeyName}/myExampledata/2014/08/02/';
...keep going

partition数据必须是“目录名”的一部分,而不是“文件名”,因为Hive从目录中加载数据。

如果您需要从文件名中读取一些文本,我认为您必须创建自定义程序,以便将对象重命名为“目录名”中的文本。

祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29887212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档