Amazon web services AWS Glue动态帧更新列和爬虫模式匹配

Amazon web services AWS Glue动态帧更新列和爬虫模式匹配,amazon-web-services,aws-glue,Amazon Web Services,Aws Glue,我正在阅读AWS Glue文档并尝试使用该服务,但我无法理解以下两件事: 我可以使用动态框架(类似于更新所有SQL查询)将所有列更新为相同的值吗?或者有没有一种方法可以通过Spark SQL来实现 我有一个爬虫程序,它从我的源数据库在一个新数据库中创建了一个数据目录。如果源数据库模式从我创建数据目录时更改到我计划作业运行时,是否有方法标记AWS Glue 如果我的问题看起来很傻,我道歉。非常感谢你的帮助:) 不知道如何直接使用spark SQL的动态框架来实现这一点,但可以使用DataFrame

我正在阅读AWS Glue文档并尝试使用该服务,但我无法理解以下两件事:

  • 我可以使用动态框架(类似于更新所有SQL查询)将所有列更新为相同的值吗?或者有没有一种方法可以通过Spark SQL来实现
  • 我有一个爬虫程序,它从我的源数据库在一个新数据库中创建了一个数据目录。如果源数据库模式从我创建数据目录时更改到我计划作业运行时,是否有方法标记AWS Glue
  • 如果我的问题看起来很傻,我道歉。非常感谢你的帮助:)

  • 不知道如何直接使用spark SQL的动态框架来实现这一点,但可以使用DataFrames来实现
  • 我不知道有什么选项可以标记已更改的数据库架构。但是你可以自己创建这样的东西:制作一个简单的脚本,读取你在某处设置的标志,然后让这个脚本触发爬虫。例如,可以使用Python中的boto3或aws cli来完成此操作

  • 你能澄清你的第一个问题吗?编辑了我的帖子。我基本上很好奇是否可以使用AWS glue spark包装器来执行更新SQL语句:源数据库是什么?您想在哪里将所有列更新为相同的值(源或目标)?@bdcloud我想更新源数据库本身中的所有列。
    from pyspark.sql.functions import lit
    from awsglue.dynamicframe import DynamicFrame
    
    # Load dynamic_frame with data.
    dynamic_frame = ...
    
    # Convert to Spark DataFrame
    df = dynamic_frame.toDF()
    
    # Loop over columns and set records to a constant value, e.g. 999
    for column in df.columns:
        df = df.withColumn(column, lit(999))
    
    # Convert back to DynamicFrame
    dynamic_frame = DynamicFrame.fromDF(df, glueContext, "dynamic_frame")