我知道我可以通过Glue上下文从JDBC Cataloged连接中加载整个表,如下所示:
glueContext.create_dynamic_frame.from_catalog(
database="jdbc_rds_postgresql",
table_name="public_foo_table",
transformation_ctx="datasource0"
)
但是,我想做的是使用分类连接部分加载表,就像我通过spark会话使用未分类的JDBC连接一样,
query = "(select * from public.foo_table where date='%s') as data" % date_fm)
spark.read.jdbc(url=DB_URL, table=query)
有没有办法可以使用目录连接?
或者,当使用未分类的连接时,我很难理解如何锁定对未分类的连接的访问,以便只有Glue作业可以访问它。我有什么选择?
答案 0 :(得分:0)
从理论上讲,您可以使用Pushdown predicates在Glue中使用分类连接来实现此目的,在其中添加push_down_predicate
参数以在读取数据时过滤数据。因此,使用您的示例:
glueContext.create_dynamic_frame.from_catalog(
database="jdbc_rds_postgresql",
table_name="public_foo_table",
transformation_ctx="datasource0",
push_down_predicate="date=%s" % date_fm
)
但是,似乎在撰写本文时仅S3源支持此功能。