8

根据 Databricks 的文章,可以将 delta Lake 与 AWS Glue 集成。但是,我不确定是否也可以在 Databricks 平台之外执行此操作。有人做过吗?另外,是否可以使用 Glue 爬虫添加 Delta Lake 相关元数据?

4

2 回答 2

4

这是不可能的。虽然您可以在 databrics 平台之外爬取 S3 增量文件,但您不会在表中找到数据。

根据文档,它说如下:

警告

不要在位置上使用 AWS Glue Crawler 来定义 AWS Glue 中的表。Delta Lake 维护着多个版本的表对应的文件,查询所有被 Glue 爬取的文件会产生不正确的结果。

于 2020-09-06T06:41:44.203 回答
0

如果您能通过说“将 delta Lake 与 AWS Glue 集成”来澄清您的意思会更好。

目前,没有直接支持 Delta Lake 的 Glue API,但是,您可以使用 Delta Lake 库编写自定义代码以将输出保存为 Delta Lake。

要使用 Crawler 将 Delta 湖泊的元数据添加到 Catalog,这是一种解决方法。解决方法并不漂亮,有两个主要部分。

1) 获取 Delta Lake 引用文件的清单。你可以参考 Delta Lake 源码,或者玩弄 _delta_log 中的日志,或者使用粗暴的方法比如

import org.apache.spark.sql.functions.input_file_name

spark.read.format("delta")
  .load(<path-to-delta-lake>)
  .select(input_file_name)
  .distinct

2) 使用 Scala 或 Python Glue API和清单在 Catalog 中创建或更新表。

于 2019-10-09T20:48:56.873 回答