首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将默认表属性分配给爬虫创建的表

将默认表属性分配给爬虫创建的表
EN

Stack Overflow用户
提问于 2021-01-20 14:25:19
回答 1查看 220关注 0票数 0

我试图将表属性分配给用爬虫创建的表。

这样做的目的是让所有使用爬虫创建的表具有相同的默认属性(加上它们通常拥有的属性)。

我检查了爬虫创建界面中的选项,但没有看到这样的选项。在创建表之后创建一个python boto3脚本来修改表属性值,这是我唯一想到的事情。

如果这在默认的爬虫功能中是不可能的,那么将表属性附加到使用某个爬虫创建的每个表上的可行方法是什么?

编辑:一个可能的解决方案是创建一个lambda函数,检查胶水表中是否存在自定义参数,如果没有创建它们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-29 09:35:39

选项1

直接添加定义中的字段可能是处理此问题的最佳方法(使用CloudFormation)。

https://docs.amazonaws.cn/en_us/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html

选项2

我想您不直接添加表字段是有原因的。如果这应该由数据本身触发,那么您可能需要查看的干净方式是编写自定义分类器:

https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html

选项3

当您需要快速攻击时,您可以通过使用缺少的模式信息爬行一个额外的文件来合并模式,并让爬虫合并字段:例如,如果您有JSON S3文件(或者您的用例的任何一致格式),您可以添加一个附加的init文件并在那里添加列。设置

代码语言:javascript
复制
{
   "Version": 1.0,
   "Grouping": {
      "TableGroupingPolicy": "CombineCompatibleSchemas" }
}

AWS医生的引文:

“为了帮助演示此选项,假设您定义了一个包含路径S3://bucket/table1 1/的爬虫。当爬虫运行时,它会找到两个具有以下特征的JSON文件:

文件1-S3://bucket/table1 1/年份=2017/data1.json

  • 文件内容-{“A”:1,“B”:2}
  • Schema - A:int,B:int

文件2-S3://bucket/table1 1/年份=2018/data2.json

  • 文件内容-{“C”:3,“D”:4}
  • Schema - C: int,D: int

默认情况下,爬虫会创建两个表,名为year_2017和year_2018,因为模式不够相似。但是,如果选项为每个S3路径创建一个模式,并且如果数据是兼容的,则爬虫将创建一个表。表具有模式。

A:int,B:int,C:int,D:int和partitionKey年:string。

请参阅https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html

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

https://stackoverflow.com/questions/65811439

复制
相关文章

相似问题

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