AWS Glue可以爬网Delta Lake表数据吗?

时间:2019-10-02 06:00:13

标签: apache-spark amazon-s3 aws-glue delta-lake

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

2 个答案:

答案 0 :(得分:1)

这是不可能的。尽管您可以在Databrics平台之外对S3 delta文件进行爬网,但是在表中找不到数据。

根据doc,其内容如下:

警告

请勿在该位置使用AWS Glue爬网程序在AWS Glue中定义表。 Delta Lake会维护与表的多个版本相对应的文件,并且查询由Glue爬网的所有文件都会生成错误的结果。

答案 1 :(得分:0)

最好说出“将三角洲湖泊与AWS Glue集成”,以澄清您的意思。.

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

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

1)获取三角洲湖参考文件的清单。您可以参考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和清单在目录中创建或更新表。