【发布时间】:2022-10-15 17:19:51
【问题描述】:
我更新了一些 ETL 以激发 3.2.1 和 delta Lake 1.1.0。这样做之后,我的本地测试开始失败。经过一些调试,我发现当我创建一个具有指定位置的空表时,它在元存储中注册了一些前缀。 假设如果尝试在青铜数据库上创建一个表火花仓库/用户作为我指定的位置:
spark.sql("""CREATE DATABASE IF NOT EXISTS bronze""")
spark.sql("""CREATE TABLE bronze.users (
| name string,
| active boolean
|)
|USING delta
|LOCATION 'spark-warehouse/users'""".stripMargin)
我最终得到:spark-warehouse/bronze.db/spark-warehouse/users在 metastore 上注册,但实际文件在 spark-warehouse/users 中!这会使对表的任何查询都失败。
【问题讨论】:
-
即使在 2.0.0rc1 中也看起来像一个错误。建议通过github.com/delta-io/delta/issues 举报。
标签: scala apache-spark delta-lake