【发布时间】:2021-02-22 19:52:28
【问题描述】:
我正在使用 delta Lake 的 OSS 版本以及 spark 3.0.1。我当前的用例要求我发现给定增量表中的所有当前分区。
我的数据存储在'./data/raw' 中,并由sensorId 列分区(提到的路径是我的python 脚本的相对路径)。
我正在尝试使用documentation 中提到的SHOW PARTITIONS 语法。但是,我遇到了错误。
这就是我的代码的样子:
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("TestScript").getOrCreate()
df=spark.sql("SHOW PARTITIONS delta.`./data/raw`")
df.show()
spark-submit 命令如下所示:
spark-submit --packages io.delta:delta-core_2.12:0.8.0 --conf "spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension" --conf "spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog" test_script.py
我收到以下错误:
pyspark.sql.utils.AnalysisException: Database 'delta' not found;
我的另一个与此相关的问题是SHOW PARTITIONS 是否会给我所有的分区,或者它会限制结果。如果有限制,发现/获取增量表的所有分区的最佳方法是什么。
【问题讨论】:
-
你在使用 Databricks 吗?表是否保存为增量表?您提供的路径是为 delta 表保存物理 parquet 文件的路径?
-
问题是关于 OSS Delta,而不是 Databricks 的...
-
@AlexOtt 我应该删除标签吗?我想既然 delta 是由 Databricks 开发的,我可以接触到相关的受众。
标签: apache-spark pyspark databricks delta-lake