作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Delta Lake 在哪里存储表元数据信息。我在我的独立机器上使用 spark 2.6(不是 Databricks)。我的假设是,如果我重新启动 spark,将删除在 delta lake spark 中创建的表(从 Jupyter notebook 尝试)。但事实并非如此。
最佳答案
Apache Spark 中有两种类型的表:外部表和托管表。在 CREATE TABLE
语句中使用 LOCATION
关键字创建表时,它是一个外部表。否则,它是一个托管表,其位置位于 Spark SQL conf spark.sql.warehouse.dir
指定的目录下。它的默认值为当前工作目录下的spark-warehouse
目录
除了数据,Spark还需要将表的元数据存储到Hive Metastore中,这样当用户使用表名查询时,Spark就可以知道数据在哪里。 Hive Metastore 通常是一个数据库。如果用户没有为 Hive Metastore 指定数据库,Spark 将使用名为 Derby 的嵌入式数据库。将表元数据存储在本地文件系统上。
DROP TABLE
命令根据表类型有不同的行为。当表是托管表时,DROP TABLE
将从 Hive Metastore 中删除表并删除数据。如果该表是外部表,DROP TABLE
将从 Hive Metastore 中删除该表,但仍将数据保留在文件系统上。因此,外部表的数据文件需要用户手动从文件系统中删除。
关于delta-lake - 三角洲湖表元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63012428/
我是一名优秀的程序员,十分优秀!