修改表结构

Iceberg支持使用ALTER TABLE命令对表结构进行修改。在Apache Spark 3中,Iceberg有完整的ALTER TABLE支持,包括:

  • (1) 重命名表。
  • (2) 设置或删除表属性。
  • (3) 添加、删除和重命名列。
  • (4) 添加、删除和重命名嵌套字段。
  • (5) 重新排序顶级列和嵌套的struct字段。
  • (6) 扩大int、float和decimal字段的类型。
  • (7) 使必需列为可选列。

此外,可以使用SQL扩展来添加对分区演化和设置表的写顺序的支持。不过需要特别注意的是,ALTER TABLE不能够修改Hadoop表,也就是说,在HadoopCatalog类型的catalog中创建的表,不能使用ALTER TABLE命令,只有HiveCatalog类型的catalog中创建的表才支持ALTER TABLE。

为了演示ALTER TABLE命令的使用,先配置一个名为hive_prod的HiveCatalog类型的catalog。在Zeppelin Notebook中指定配置(如果是使用spark-shell,请参考11.2.1节),代码如下:

%spark.conf
spark.jars.packages         		iceberg-spark-runtime-3.1_2.12:0.13.1
spark.sql.extensions         		org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
spar ......
          

......

抱歉,只有登录会员才可浏览!会员登录


《Spark原理深入与编程实战》