小编Cha*_*tar的帖子

使用AWS Glue和Apache Avro进行架构更改

我是AWS Glue的新手,并且很难完全理解AWS文档,但我正在努力解决以下用例:

我们有一个带有许多Avro文件的s3存储桶.我们决定使用Avro,因为它对数据模式的更改提供了广泛的支持,允许新字段毫无问题地应用于旧数据.

使用AWS Glue,我了解只要存在架构更改,爬虫就会创建一个新表.当我们的模式发生变化时,这会导致爬行器按照预期创建许多新表,但并不像我们希望的那样......

最终,我们希望爬虫检测到最新的模式,并将此模式应用于我们在s3存储桶中爬行的所有数据,仅输出一个表.我们(可能错误地)假设通过使用Avro,这不会是一个问题,因为爬虫可以将具有给定默认值或空值的新架构字段应用于旧数据(使用Avro的好处),并且只输出一个表然后我们可以使用AWS Athena进行查询.

AWS Glue中是否有一种方法可以为s3存储桶中的所有数据使用给定的模式,使我们能够利用模式演化的Avro优势,从而将所有数据输出到一个表中?

amazon-s3 amazon-web-services avro aws-glue

9
推荐指数
1
解决办法
861
查看次数

Javascript映射到obj数组与另一个数组,以获得不同的键值

所以我不确定为什么我有这么困难的时间,但是我有一个id数组,我试图用它来映射一个对象数组以找到相应的id,但从不同的键返回值.

即: arr=[13, 1, 16]

arrObj= [{
          id: 1,
          name: "cat"
         }, {
          id: 10,
          name: "tiger", 
         }, {
          id: 3,
          name: "dog", 
         }, {
          id: 16,
          name: "bear", 
         }, {
          id: 8,
          name: "fish", 
         }, {
          id: 13,
          name: "goat", 
         }]
Run Code Online (Sandbox Code Playgroud)

我希望它返回: ["goat", "cat", "bear"]

我有一个嵌套的map函数,它执行此操作但返回未定义的对象没有相应的ID.我可以从返回的数组中过滤掉未定义的内容,但似乎有更清晰/更有效的方法来执行此操作.

实现这一目标的最简洁方法是什么?

javascript arrays object

5
推荐指数
1
解决办法
1573
查看次数