首页 > 解决方案 > AWS Glue 动态帧更新列和爬网程序架构匹配

问题描述

我正在阅读 AWS Glue 文档并使用该服务,但我无法弄清楚以下两件事:

  1. 我可以使用动态框架(类似于 UPDATE ALL SQL 查询)将所有列更新为相同的值,还是有办法通过 Spark SQL 来做到这一点?
  2. 我有一个爬虫,它从我的源数据库在新数据库中创建了一个数据目录。如果从我创建数据目录到我安排作业运行时源数据库架构发生了变化,我是否可以在 AWS Glue 上进行标记?

抱歉,如果我的问题看起来很愚蠢。非常感谢您的帮助:)

标签: amazon-web-servicesaws-glue

解决方案


  1. 不知道如何直接使用 spark SQL 的动态帧来执行此操作,但可以使用 DataFrames 来完成。
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")
  1. 我不知道标记更改的数据库架构的选项。但是您可以自己创建类似的东西:制作一个简单的脚本来读取您在某处设置的标志,然后让该脚本触发爬虫。这可以通过 Python 中的 boto3 或 aws cli 来完成。

推荐阅读