gpt4 book ai didi

delta-lake - 如何更改 Delta 表的添加列?

转载 作者:行者123 更新时间:2023-12-05 04:33:18 28 4
gpt4 key购买 nike

我想使用 spark sql 在 Delta 表中添加一些列,但它显示如下错误:

ALTER ADD COLUMNS does not support datasource table with type org.apache.spark.sql.delta.sources.DeltaDataSource.
You must drop and re-create the table for adding the new columns.

有什么办法可以改变我在 delta lake 中的表吗?

最佳答案

非常感谢这个问题!在寻找解决方案的过程中,我学到了很多东西 👍


这是 Apache Spark 3.2.1 和 Delta Lake 1.1.0(全部开源)。


报错原因是Spark SQL(3.2.1)支持ALTER ADD COLUMNS csv 的声明, json , parquet , orc仅数据源。否则,it throws the exception .

我假设你跑了 ALTER ADD COLUMNS使用 SQL(因为如果您使用 Scala API 或 PySpark,则可以更早地发现根本原因)。

这将我们引向 org.apache.spark.sql.delta.catalog.DeltaCatalog必须将其“安装”到 Spark SQL 才能将 Delta Lake 识别为受支持的数据源。这在官方Quickstart中有描述.

对于 PySpark(在命令行上),它将如下所示:

./bin/pyspark \
--packages io.delta:delta-core_2.12:1.1.0 \
--conf spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension \
--conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog

为了使用 Delta Lake 的功能(包括 ALTER ADD COLUMNS 支持)扩展 Spark SQL,您必须为 DeltaSparkSessionExtension 添加以下配置属性和 DeltaCatalog :

  1. spark.sql.extensions
  2. spark.sql.catalog.spark_catalog

它们是强制性的(在 Azure Databricks 等托管环境中是可选的,由于显而易见的原因,它们被提到工作正常)。

关于delta-lake - 如何更改 Delta 表的添加列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71465748/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com