amazon-web-services - AWS Glue 动态帧更新列和爬网程序架构匹配
问题描述
我正在阅读 AWS Glue 文档并使用该服务,但我无法弄清楚以下两件事:
- 我可以使用动态框架(类似于 UPDATE ALL SQL 查询)将所有列更新为相同的值,还是有办法通过 Spark SQL 来做到这一点?
- 我有一个爬虫,它从我的源数据库在新数据库中创建了一个数据目录。如果从我创建数据目录到我安排作业运行时源数据库架构发生了变化,我是否可以在 AWS Glue 上进行标记?
抱歉,如果我的问题看起来很愚蠢。非常感谢您的帮助:)
解决方案
- 不知道如何直接使用 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")
- 我不知道标记更改的数据库架构的选项。但是您可以自己创建类似的东西:制作一个简单的脚本来读取您在某处设置的标志,然后让该脚本触发爬虫。这可以通过 Python 中的 boto3 或 aws cli 来完成。
推荐阅读
- javascript - 在 RequireJS 配置中包含 Bootstrap 4 时出现 popper.js 错误
- reactjs - 如果使用 ES6 箭头函数,JSDoc 在生成文档时会抛出错误
- jquery - Ajax .done() 和 .fail() 同时触发
- javascript - 在 AJAX 调用上使用 POST 数据渲染 Django 模板
- restructuredtext - 跨越多行的单元格中的文本换行 - Sphinx ReStructuredText
- python - 如何在小键盘上绑定键数?
- hadoop - 蜂巢-h
未建立与 hive 控制台的连接 - ruby-on-rails - Ubuntu - Apache:Passenger 根本没有启动 Rails 应用程序
- ansible - 在 Ansible 中,如何将标量过滤器应用于列表
- c++ - 关于重载 -> 运算符的说明