正确访问 Glue 中的数据目录 table

Accessing datacatalog table in Glue properly

我在 Athena 中创建了一个 table,没有来自 S3 源的爬虫。它出现在我的数据目录中。但是,当我尝试通过 Glue ETL 中的 python 作业访问它时,它显示它没有列或任何数据。访问某列时弹出如下错误:AttributeError: 'DataFrame' object has no attribute '<COLUMN-NAME>'.

我正在尝试按照胶水方式访问动态框架:

datasource = glueContext.create_dynamic_frame.from_catalog(
  database="datacatalog_database",
  table_name="table_name",
  transformation_ctx="datasource"
)

print(f"Count: {datasource.count()}")
print(f"Schema: {datasource.schema()}")

以上日志输出:Count: 0 & Schema: StructType([], {}),其中 Athena table 显示我有大约 800,000 行。

旁注:

看起来 S3 存储桶中有多个嵌套文件夹。要让 Glue 读取这些文件夹,您需要添加一个标志,将 additional_options = {"recurse": True} 添加到您的 from_catalog()。这将有助于从 s3 文件中递归读取记录。