类 DeltaTableBuilder

Object
io.delta.tables.DeltaTableBuilder

public class DeltaTableBuilder extends Object
:: 演进中 :

用于指定如何创建/替换 Delta 表的构建器。在执行构建器之前,必须指定表名或路径。您可以指定表列、分区列、数据位置、表注释和属性,以及如何创建/替换 Delta 表。

执行构建器后,将返回 DeltaTable 的实例。

使用表名创建带生成列的 Delta 表的 Scala 示例


   val table: DeltaTable = DeltaTable.create()
     .tableName("testTable")
     .addColumn("c1",  dataType = "INT", nullable = false)
     .addColumn(
       DeltaTable.columnBuilder("c2")
         .dataType("INT")
         .generatedAlwaysAs("c1 + 10")
         .build()
     )
     .addColumn(
       DeltaTable.columnBuilder("c3")
         .dataType("INT")
         .comment("comment")
         .nullable(true)
         .build()
     )
     .partitionedBy("c1", "c2")
     .execute()
 

使用位置创建 Delta 表的 Scala 示例


   val table: DeltaTable = DeltaTable.createIfNotExists(spark)
     .location("/foo/`bar`")
     .addColumn("c1", dataType = "INT", nullable = false)
     .addColumn(
       DeltaTable.columnBuilder(spark, "c2")
         .dataType("INT")
         .generatedAlwaysAs("c1 + 10")
         .build()
     )
     .addColumn(
       DeltaTable.columnBuilder(spark, "c3")
         .dataType("INT")
         .comment("comment")
         .nullable(true)
         .build()
     )
     .partitionedBy("c1", "c2")
     .execute()
 

替换表的 Java 示例


   DeltaTable table = DeltaTable.replace()
     .tableName("db.table")
     .addColumn("c1",  "INT", false)
     .addColumn(
       DeltaTable.columnBuilder("c2")
         .dataType("INT")
         .generatedAlwaysBy("c1 + 10")
         .build()
     )
     .execute();
 

1.0.0
  • 方法详情

    • addColumn

      public DeltaTableBuilder addColumn(String colName, String dataType)
      :: 演进中 :

      指定列。

      参数
      colName - 字符串列名
      dataType - 字符串 DDL 数据类型
      返回
      (未记录)
      1.0.0
    • addColumn

      public DeltaTableBuilder addColumn(String colName, org.apache.spark.sql.types.DataType dataType)
      :: 演进中 :

      指定列。

      参数
      colName - 字符串列名
      dataType - dataType DDL 数据类型
      返回
      (未记录)
      1.0.0
    • addColumn

      public DeltaTableBuilder addColumn(String colName, String dataType, boolean nullable)
      :: 演进中 :

      指定列。

      参数
      colName - 字符串列名
      dataType - 字符串 DDL 数据类型
      nullable - 布尔值,表示列是否可为空
      返回
      (未记录)
      1.0.0
    • addColumn

      public DeltaTableBuilder addColumn(String colName, org.apache.spark.sql.types.DataType dataType, boolean nullable)
      :: 演进中 :

      指定列。

      参数
      colName - 字符串列名
      dataType - dataType DDL 数据类型
      nullable - 布尔值,表示列是否可为空
      返回
      (未记录)
      1.0.0
    • addColumn

      public DeltaTableBuilder addColumn(org.apache.spark.sql.types.StructField col)
      :: 演进中 :

      指定列。

      参数
      col - structField 列结构体
      返回
      (未记录)
      1.0.0
    • addColumns

      public DeltaTableBuilder addColumns(org.apache.spark.sql.types.StructType cols)
      :: 演进中 :

      使用现有模式指定列。

      参数
      cols - structType 列的现有模式
      返回
      (未记录)
      1.0.0
    • clusterBy

      public DeltaTableBuilder clusterBy(String... colNames)
      :: 演进中 :

      指定用于在文件系统上聚类输出的列。

      注意:这应该只包括已在模式中定义的表列。

      参数
      colNames - string* 用于聚类的列名
      返回
      (未记录)
      3.2.0
    • clusterBy

      public DeltaTableBuilder clusterBy(scala.collection.immutable.Seq<String> colNames)
      :: 演进中 :

      指定用于在文件系统上聚类输出的列。

      注意:这应该只包括已在模式中定义的表列。

      参数
      colNames - string* 用于聚类的列名
      返回
      (未记录)
      3.2.0
    • comment

      public DeltaTableBuilder comment(String comment)
      :: 演进中 :

      指定表注释以描述表。

      参数
      comment - 字符串表注释
      返回
      (未记录)
      1.0.0
    • 执行

      public DeltaTable execute()
      :: 演进中 :

      执行创建/替换 Delta 表的命令并返回 DeltaTable 的实例。

      返回
      (未记录)
      1.0.0
    • location

      public DeltaTableBuilder location(String location)
      :: 演进中 :

      指定存储表数据的目录路径,可以是分布式存储上的路径。

      参数
      location - 字符串数据位置
      返回
      (未记录)
      1.0.0
    • partitionedBy

      public DeltaTableBuilder partitionedBy(String... colNames)
      :: 演进中 :

      指定用于在文件系统上分区输出的列。

      注意:这应该只包括已在模式中定义的表列。

      参数
      colNames - string* 用于分区的列名
      返回
      (未记录)
      1.0.0
    • partitionedBy

      public DeltaTableBuilder partitionedBy(scala.collection.immutable.Seq<String> colNames)
      :: 演进中 :

      指定用于在文件系统上分区输出的列。

      注意:这应该只包括已在模式中定义的表列。

      参数
      colNames - string* 用于分区的列名
      返回
      (未记录)
      1.0.0
    • property

      public DeltaTableBuilder property(String key, String value)
      :: 演进中 :

      指定键值对以标记表定义。

      参数
      key - 字符串表属性键
      value - 字符串表属性值
      返回
      (未记录)
      1.0.0
    • tableName

      public DeltaTableBuilder tableName(String identifier)
      :: 演进中 :

      指定表名,可选地使用数据库名 [database_name.]table_name 进行限定。

      参数
      identifier - 字符串表名
      返回
      (未记录)
      1.0.0