类 DeltaTable
- 所有已实现的接口:
io.delta.tables.execution.DeltaTableOperations
,Serializable
,org.apache.spark.sql.delta.util.AnalysisHelper
DeltaTable.forPath(sparkSession, pathToTheDeltaTable)
- 自
- 0.3.0
- 另请参阅
-
嵌套类摘要
从接口 org.apache.spark.sql.delta.util.AnalysisHelper 继承的嵌套类/接口
org.apache.spark.sql.delta.util.AnalysisHelper.FakeLogicalPlan, org.apache.spark.sql.delta.util.AnalysisHelper.FakeLogicalPlan$
-
方法摘要
修饰符及类型方法描述void
addFeatureSupport
(String featureName) 修改协议以添加支持的功能,如果表不支持表功能,则自动升级协议。为 DeltaTable 应用别名。为 DeltaTable 应用别名。将 DeltaTable 克隆到给定目的地,以镜像现有表的数据和元数据。将 DeltaTable 克隆到给定目的地,以镜像现有表的数据和元数据。Python 实现使用 java.util.HashMap 作为 properties 参数的克隆。clone
(String target, boolean isShallow, boolean replace, scala.collection.immutable.Map<String, String> properties) 将 DeltaTable 克隆到给定目的地,以镜像现有表的数据和元数据。cloneAtTimestamp
(String timestamp, String target, boolean isShallow) 将指定时间戳的 DeltaTable 克隆到给定目的地,以镜像该时间戳的现有表的数据和元数据。cloneAtTimestamp
(String timestamp, String target, boolean isShallow, boolean replace) 将指定时间戳的 DeltaTable 克隆到给定目的地,以镜像该时间戳的现有表的数据和元数据。cloneAtTimestamp
(String timestamp, String target, boolean isShallow, boolean replace, HashMap<String, String> properties) Python 实现使用 java.util.HashMap 作为 properties 参数的 cloneAtTimestamp。cloneAtTimestamp
(String timestamp, String target, boolean isShallow, boolean replace, scala.collection.immutable.Map<String, String> properties) 将指定时间戳的 DeltaTable 克隆到给定目的地,以镜像该时间戳的现有表的数据和元数据。cloneAtVersion
(long version, String target, boolean isShallow) 将指定版本的 DeltaTable 克隆到给定目的地,以镜像该版本现有表的数据和元数据。cloneAtVersion
(long version, String target, boolean isShallow, boolean replace) 将指定版本的 DeltaTable 克隆到给定目的地,以镜像该版本现有表的数据和元数据。cloneAtVersion
(long version, String target, boolean isShallow, boolean replace, HashMap<String, String> properties) Python 实现使用 java.util.HashMap 作为 properties 参数的 cloneAtVersion。cloneAtVersion
(long version, String target, boolean isShallow, boolean replace, scala.collection.immutable.Map<String, String> properties) 将指定版本的 DeltaTable 克隆到给定目的地,以镜像该版本现有表的数据和元数据。static DeltaColumnBuilder
columnBuilder
(String colName) :: 演进中 :static DeltaColumnBuilder
columnBuilder
(org.apache.spark.sql.SparkSession spark, String colName) :: 演进中 :static DeltaTable
convertToDelta
(org.apache.spark.sql.SparkSession spark, String identifier) 从给定的 parquet 表创建 DeltaTable。static DeltaTable
convertToDelta
(org.apache.spark.sql.SparkSession spark, String identifier, String partitionSchema) 从给定的 parquet 表和分区模式创建 DeltaTable。static DeltaTable
convertToDelta
(org.apache.spark.sql.SparkSession spark, String identifier, org.apache.spark.sql.types.StructType partitionSchema) 从给定的 parquet 表和分区模式创建 DeltaTable。static DeltaTableBuilder
create()
:: 演进中 :static DeltaTableBuilder
create
(org.apache.spark.sql.SparkSession spark) :: 演进中 :static DeltaTableBuilder
:: 演进中 :static DeltaTableBuilder
createIfNotExists
(org.apache.spark.sql.SparkSession spark) :: 演进中 :static DeltaTableBuilder
:: 演进中 :static DeltaTableBuilder
createOrReplace
(org.apache.spark.sql.SparkSession spark) :: 演进中 :void
delete()
从表中删除数据。void
从表中删除与给定 `condition` 匹配的数据。void
delete
(org.apache.spark.sql.Column condition) 从表中删除与给定 `condition` 匹配的数据。org.apache.spark.sql.Dataset<org.apache.spark.sql.Row>
detail()
:: 演进中 :void
dropFeatureSupport
(String featureName) 修改协议以删除支持的功能。void
dropFeatureSupport
(String featureName, boolean truncateHistory) 修改协议以删除支持的功能。static DeltaTable
使用给定的表名实例化一个DeltaTable
对象。static DeltaTable
使用以下方式之一实例化一个DeltaTable
对象:1。static DeltaTable
实例化一个DeltaTable
对象,表示给定路径的数据。如果给定路径无效(即不存在表或现有表不是 Delta 表),则抛出not a Delta table
错误。static DeltaTable
实例化一个DeltaTable
对象,表示给定路径的数据。如果给定路径无效(即不存在表或现有表不是 Delta 表),则抛出not a Delta table
错误。static DeltaTable
Java 友好的 API,用于实例化一个DeltaTable
对象,表示给定路径的数据。如果给定路径无效(即不存在表或现有表不是 Delta 表),则抛出not a Delta table
错误。static DeltaTable
forPath
(org.apache.spark.sql.SparkSession sparkSession, String path, scala.collection.Map<String, String> hadoopConf) 实例化一个DeltaTable
对象,表示给定路径的数据。如果给定路径无效(即不存在表或现有表不是 Delta 表),则抛出not a Delta table
错误。void
为给定的 Delta 表生成清单org.apache.spark.sql.Dataset<org.apache.spark.sql.Row>
history()
获取此表上可用提交的信息作为 Spark DataFrame。org.apache.spark.sql.Dataset<org.apache.spark.sql.Row>
history
(int limit) 获取此表上最新 `limit` 提交的信息作为 Spark DataFrame。static boolean
isDeltaTable
(String identifier) 检查提供的 `identifier` 字符串(在这种情况下是文件路径)是否是 Delta 表的根目录。static boolean
isDeltaTable
(org.apache.spark.sql.SparkSession sparkSession, String identifier) 使用给定的 SparkSession 检查提供的 `identifier` 字符串(在这种情况下是文件路径)是否是 Delta 表的根目录。根据给定的合并 `condition` 合并来自 `source` DataFrame 的数据。merge
(org.apache.spark.sql.Dataset<org.apache.spark.sql.Row> source, org.apache.spark.sql.Column condition) 根据给定的合并 `condition` 合并来自 `source` DataFrame 的数据。optimize()
优化表的数据布局。static DeltaTableBuilder
replace()
:: 演进中 :static DeltaTableBuilder
replace
(org.apache.spark.sql.SparkSession spark) :: 演进中 :org.apache.spark.sql.Dataset<org.apache.spark.sql.Row>
restoreToTimestamp
(String timestamp) 将 DeltaTable 恢复到由时间戳指定的表的旧版本。org.apache.spark.sql.Dataset<org.apache.spark.sql.Row>
restoreToVersion
(long version) 将 DeltaTable 恢复到由版本号指定的表的旧版本。org.apache.spark.sql.Dataset<org.apache.spark.sql.Row>
toDF()
获取此 Delta 表的 DataFrame(即 Dataset[Row])表示。void
根据 `set` 定义的规则更新表中的行。void
根据 `set` 定义的规则,从表中更新与给定 `condition` 匹配的行数据。void
update
(org.apache.spark.sql.Column condition, scala.collection.immutable.Map<String, org.apache.spark.sql.Column> set) 根据 `set` 定义的规则,从表中更新与给定 `condition` 匹配的行数据。void
根据 `set` 定义的规则更新表中的行。void
updateExpr
(String condition, Map<String, String> set) 根据给定 `condition` 匹配的行数据进行更新,执行 `set` 定义的规则。void
updateExpr
(String condition, scala.collection.immutable.Map<String, String> set) 根据给定 `condition` 匹配的行数据进行更新,执行 `set` 定义的规则。void
updateExpr
(Map<String, String> set) 根据 `set` 定义的规则更新表中的行。void
updateExpr
(scala.collection.immutable.Map<String, String> set) 根据 `set` 定义的规则更新表中的行。void
upgradeTableProtocol
(int readerVersion, int writerVersion) 更新表的协议版本以利用新功能。org.apache.spark.sql.Dataset<org.apache.spark.sql.Row>
vacuum()
递归删除表中不需要的、用于维护旧版本(直到给定的保留阈值)的文件和目录。org.apache.spark.sql.Dataset<org.apache.spark.sql.Row>
vacuum
(double retentionHours) 递归删除表中不需要的、用于维护旧版本(直到给定的保留阈值)的文件和目录。从接口 org.apache.spark.sql.delta.util.AnalysisHelper 继承的方法
improveUnsupportedOpError, resolveReferencesForExpressions, toDataset, tryResolveReferences, tryResolveReferencesForExpressions, tryResolveReferencesForExpressions
接口 io.delta.tables.execution.DeltaTableOperations 中继承的方法
executeClone, executeClone$default$6, executeClone$default$7, executeDelete, executeDetails, executeGenerate, executeHistory, executeHistory$default$2, executeHistory$default$3, executeRestore, executeUpdate, executeVacuum, sparkSession, toStrColumnMap
-
方法详情
-
convertToDelta
public static DeltaTable convertToDelta(org.apache.spark.sql.SparkSession spark, String identifier, org.apache.spark.sql.types.StructType partitionSchema) 从给定的 parquet 表和分区模式创建 DeltaTable。获取现有 parquet 表并在该表的基本路径中构建 Delta 事务日志。注意:转换过程中对表的任何更改都可能导致转换结束时状态不一致。用户应在转换开始前停止对表的任何更改。
一个用法示例如下
io.delta.tables.DeltaTable.convertToDelta( spark, "parquet.`/path`", new StructType().add(StructField("key1", LongType)).add(StructField("key2", StringType)))
- 参数
spark
- (未记录)identifier
- (未记录)partitionSchema
- (未记录)- 返回
- (未记录)
- 自
- 0.4.0
-
convertToDelta
public static DeltaTable convertToDelta(org.apache.spark.sql.SparkSession spark, String identifier, String partitionSchema) 从给定的 parquet 表和分区模式创建 DeltaTable。获取现有 parquet 表并在该表的基本路径中构建 Delta 事务日志。注意:转换过程中对表的任何更改都可能导致转换结束时状态不一致。用户应在转换开始前停止对表的任何更改。
一个用法示例如下
io.delta.tables.DeltaTable.convertToDelta( spark, "parquet.`/path`", "key1 long, key2 string")
- 参数
spark
- (未记录)identifier
- (未记录)partitionSchema
- (未记录)- 返回
- (未记录)
- 自
- 0.4.0
-
convertToDelta
从给定的 parquet 表创建 DeltaTable。获取现有 parquet 表并在该表的基本路径中构建 Delta 事务日志。注意:转换过程中对表的任何更改都可能导致转换结束时状态不一致。用户应在转换开始前停止对表的任何更改。
一个示例如下
io.delta.tables.DeltaTable.convertToDelta( spark, "parquet.`/path`"
- 参数
spark
- (未记录)identifier
- (未记录)- 返回
- (未记录)
- 自
- 0.4.0
-
forPath
实例化一个DeltaTable
对象,表示给定路径的数据。如果给定路径无效(即不存在表或现有表不是 Delta 表),则抛出not a Delta table
错误。注意:这使用当前线程中活动的 SparkSession 读取表数据。因此,如果未设置活动的 SparkSession,即
SparkSession.getActiveSession()
为空,则会抛出错误。- 参数
path
- (未记录)- 返回
- (未记录)
- 自
- 0.3.0
-
forPath
实例化一个DeltaTable
对象,表示给定路径的数据。如果给定路径无效(即不存在表或现有表不是 Delta 表),则抛出not a Delta table
错误。- 参数
sparkSession
- (未记录)path
- (未记录)- 返回
- (未记录)
- 自
- 0.3.0
-
forPath
public static DeltaTable forPath(org.apache.spark.sql.SparkSession sparkSession, String path, scala.collection.Map<String, String> hadoopConf) 实例化一个DeltaTable
对象,表示给定路径的数据。如果给定路径无效(即不存在表或现有表不是 Delta 表),则抛出not a Delta table
错误。- 参数
hadoopConf
- 以“fs.”或“dfs.”开头的 Hadoop 配置将被DeltaTable
选取,以在执行查询时访问文件系统。其他配置将不被允许。val hadoopConf = Map( "fs.s3a.access.key" -> "<access-key>", "fs.s3a.secret.key" -> "<secret-key>" ) DeltaTable.forPath(spark, "/path/to/table", hadoopConf)
sparkSession
- (未记录)path
- (未记录)- 返回
- (未记录)
- 自
- 2.2.0
-
forPath
public static DeltaTable forPath(org.apache.spark.sql.SparkSession sparkSession, String path, Map<String, String> hadoopConf) Java 友好的 API,用于实例化一个DeltaTable
对象,表示给定路径的数据。如果给定路径无效(即不存在表或现有表不是 Delta 表),则抛出not a Delta table
错误。- 参数
hadoopConf
- 以“fs.”或“dfs.”开头的 Hadoop 配置将被DeltaTable
选取,以在执行查询时访问文件系统。其他配置将被忽略。val hadoopConf = Map( "fs.s3a.access.key" -> "<access-key>", "fs.s3a.secret.key", "<secret-key>" ) DeltaTable.forPath(spark, "/path/to/table", hadoopConf)
sparkSession
- (未记录)path
- (未记录)- 返回
- (未记录)
- 自
- 2.2.0
-
forName
使用给定的表名实例化一个DeltaTable
对象。如果给定的 tableOrViewName 无效(即不存在表或现有表不是 Delta 表),则抛出not a Delta table
错误。注意:传递视图名也会导致此错误,因为不支持视图。给定的 tableOrViewName 也可以是 delta 数据源的绝对路径(即 delta.
path
)。如果是,则实例化一个DeltaTable
对象,表示给定路径的数据(与forPath(java.lang.String)
一致)。注意:这使用当前线程中活动的 SparkSession 读取表数据。因此,如果未设置活动的 SparkSession,即
SparkSession.getActiveSession()
为空,则会抛出错误。- 参数
tableOrViewName
- (未记录)- 返回
- (未记录)
-
forName
使用以下方式之一实例化一个DeltaTable
对象:1. 使用给定的 SparkSession 和 SessionCatalog 的给定 tableName。2. tableName 也可以是 delta 数据源的绝对路径(即 delta.path
)。如果是,则实例化一个DeltaTable
对象,表示给定路径的数据(与forPath(java.lang.String)
一致)。3. 如果以catalog.db.table
形式传递完全限定的 tableName,则通过指定的目录而不是默认的 *SessionCatalog* 解析表。如果给定的 tableName 无效(即不存在表或现有表不是 Delta 表),则抛出
not a Delta table
错误。注意:传递视图名也会导致此错误,因为不支持视图。- 参数
sparkSession
- (未记录)tableName
- (未记录)- 返回
- (未记录)
-
isDeltaTable
public static boolean isDeltaTable(org.apache.spark.sql.SparkSession sparkSession, String identifier) 使用给定的 SparkSession 检查提供的 `identifier` 字符串(在这种情况下是文件路径)是否是 Delta 表的根目录。例如:
DeltaTable.isDeltaTable(spark, "path/to/table")
- 参数
sparkSession
- (未记录)identifier
- (未记录)- 返回
- (未记录)
- 自
- 0.4.0
-
isDeltaTable
检查提供的 `identifier` 字符串(在这种情况下是文件路径)是否是 Delta 表的根目录。注意:这使用当前线程中活动的 SparkSession 搜索表。因此,如果未设置活动的 SparkSession,即
SparkSession.getActiveSession()
为空,则会抛出错误。例如:
DeltaTable.isDeltaTable(spark, "/path/to/table")
- 参数
identifier
- (未记录)- 返回
- (未记录)
- 自
- 0.4.0
-
create
:: 演进中 :返回一个
DeltaTableBuilder
实例以创建 Delta 表,如果表存在则报错(与 SQLCREATE TABLE
相同)。有关更多详细信息,请参阅DeltaTableBuilder
。注意:这使用当前线程中活动的 SparkSession 读取表数据。因此,如果未设置活动的 SparkSession,即
SparkSession.getActiveSession()
为空,则会抛出错误。- 返回
- (未记录)
- 自
- 1.0.0
-
create
:: 演进中 :返回一个
DeltaTableBuilder
实例以创建 Delta 表,如果表存在则报错(与 SQLCREATE TABLE
相同)。有关更多详细信息,请参阅DeltaTableBuilder
。- 参数
spark
- 用户传递的 sparkSession- 返回
- (未记录)
- 自
- 1.0.0
-
createIfNotExists
:: 演进中 :返回一个
DeltaTableBuilder
实例以创建 Delta 表,如果表不存在则创建(与 SQLCREATE TABLE IF NOT EXISTS
相同)。有关更多详细信息,请参阅DeltaTableBuilder
。注意:这使用当前线程中活动的 SparkSession 读取表数据。因此,如果未设置活动的 SparkSession,即
SparkSession.getActiveSession()
为空,则会抛出错误。- 返回
- (未记录)
- 自
- 1.0.0
-
createIfNotExists
:: 演进中 :返回一个
DeltaTableBuilder
实例以创建 Delta 表,如果表不存在则创建(与 SQLCREATE TABLE IF NOT EXISTS
相同)。有关更多详细信息,请参阅DeltaTableBuilder
。- 参数
spark
- 用户传递的 sparkSession- 返回
- (未记录)
- 自
- 1.0.0
-
replace
:: 演进中 :返回一个
DeltaTableBuilder
实例以替换 Delta 表,如果表不存在则报错(与 SQLREPLACE TABLE
相同)。有关更多详细信息,请参阅DeltaTableBuilder
。注意:这使用当前线程中活动的 SparkSession 读取表数据。因此,如果未设置活动的 SparkSession,即
SparkSession.getActiveSession()
为空,则会抛出错误。- 返回
- (未记录)
- 自
- 1.0.0
-
replace
:: 演进中 :返回一个
DeltaTableBuilder
实例以替换 Delta 表,如果表不存在则报错(与 SQLREPLACE TABLE
相同)。有关更多详细信息,请参阅DeltaTableBuilder
。- 参数
spark
- 用户传递的 sparkSession- 返回
- (未记录)
- 自
- 1.0.0
-
createOrReplace
:: 演进中 :返回一个
DeltaTableBuilder
实例以替换 Delta 表或在不存在时创建表(与 SQLCREATE OR REPLACE TABLE
相同)。有关更多详细信息,请参阅DeltaTableBuilder
。注意:这使用当前线程中活动的 SparkSession 读取表数据。因此,如果未设置活动的 SparkSession,即
SparkSession.getActiveSession()
为空,则会抛出错误。- 返回
- (未记录)
- 自
- 1.0.0
-
createOrReplace
:: 演进中 :返回一个
DeltaTableBuilder
实例以替换 Delta 表,或在不存在时创建表(与 SQLCREATE OR REPLACE TABLE
相同)。有关更多详细信息,请参阅DeltaTableBuilder
。- 参数
spark
- 用户传递的 sparkSession。- 返回
- (未记录)
- 自
- 1.0.0
-
columnBuilder
:: 演进中 :返回
DeltaColumnBuilder
的实例以指定列。有关示例,请参阅DeltaTableBuilder
,有关详细 API,请参阅DeltaColumnBuilder
。注意:这使用当前线程中活动的 SparkSession 读取表数据。因此,如果未设置活动的 SparkSession,即
SparkSession.getActiveSession()
为空,则会抛出错误。- 参数
colName
- 字符串列名- 返回
- (未记录)
- 自
- 1.0.0
-
columnBuilder
public static DeltaColumnBuilder columnBuilder(org.apache.spark.sql.SparkSession spark, String colName) :: 演进中 :返回
DeltaColumnBuilder
的实例以指定列。有关示例,请参阅DeltaTableBuilder
,有关详细 API,请参阅DeltaColumnBuilder
。- 参数
spark
- 用户传递的 sparkSessioncolName
- 字符串列名- 返回
- (未记录)
- 自
- 1.0.0
-
as
为 DeltaTable 应用别名。这类似于Dataset.as(alias)
或 SQLtableName AS alias
。- 参数
alias
- (未记录)- 返回
- (未记录)
- 自
- 0.3.0
-
alias
为 DeltaTable 应用别名。这类似于Dataset.as(alias)
或 SQLtableName AS alias
。- 参数
alias
- (未记录)- 返回
- (未记录)
- 自
- 0.3.0
-
toDF
public org.apache.spark.sql.Dataset<org.apache.spark.sql.Row> toDF()获取此 Delta 表的 DataFrame(即 Dataset[Row])表示。- 返回
- (未记录)
- 自
- 0.3.0
-
vacuum
public org.apache.spark.sql.Dataset<org.apache.spark.sql.Row> vacuum(double retentionHours) 递归删除表中在给定保留阈值之前维护旧版本不需要的文件和目录。此方法在成功完成后将返回一个空的 DataFrame。- 参数
retentionHours
- 保留阈值(小时)。用于读取早于此版本的表所需的文件将被保留,其余的将被删除。- 返回
- (未记录)
- 自
- 0.3.0
-
vacuum
public org.apache.spark.sql.Dataset<org.apache.spark.sql.Row> vacuum()递归删除表中在给定保留阈值之前维护旧版本不需要的文件和目录。此方法在成功完成后将返回一个空的 DataFrame。注意:这将使用 7 天的默认保留期。
- 返回
- (未记录)
- 自
- 0.3.0
-
history
public org.apache.spark.sql.Dataset<org.apache.spark.sql.Row> history(int limit) 以 Spark DataFrame 的形式获取此表上最新limit
次提交的信息。信息按时间倒序排列。- 参数
limit
- 要获取历史记录的先前命令的数量- 返回
- (未记录)
- 自
- 0.3.0
-
history
public org.apache.spark.sql.Dataset<org.apache.spark.sql.Row> history()以 Spark DataFrame 的形式获取此表上可用的提交信息。信息按时间倒序排列。- 返回
- (未记录)
- 自
- 0.3.0
-
detail
public org.apache.spark.sql.Dataset<org.apache.spark.sql.Row> detail():: 演进中 :获取 Delta 表的详细信息,例如格式、名称和大小。
- 返回
- (未记录)
- 自
- 2.1.0
-
generate
为给定的 Delta 表生成清单- 参数
mode
- 指定清单生成的模式。有效的模式如下(不区分大小写):- "symlink_format_manifest":这将生成符号链接格式的清单,用于 Presto 和 Athena 读取支持。有关更多信息,请参阅在线文档。- 自
- 0.5.0
-
delete
从表中删除与给定 `condition` 匹配的数据。- 参数
condition
- 布尔 SQL 表达式- 自
- 0.3.0
-
delete
public void delete(org.apache.spark.sql.Column condition) 从表中删除与给定 `condition` 匹配的数据。- 参数
condition
- 布尔 SQL 表达式- 自
- 0.3.0
-
delete
public void delete()从表中删除数据。- 自
- 0.3.0
-
optimize
优化表的数据布局。这将返回一个DeltaOptimizeBuilder
对象,可用于指定分区筛选器以限制优化范围,并执行不同的优化技术,例如文件压缩或使用 Z-Order 曲线排序数据。有关此操作的完整说明,请参阅
DeltaOptimizeBuilder
。在表中子集分区上运行文件压缩的 Scala 示例
deltaTable .optimize() .where("date='2021-11-18'") .executeCompaction();
- 返回
- (未记录)
- 自
- 2.0.0
-
更新
根据 `set` 定义的规则更新表中的行。递增
data
列的 Scala 示例。import org.apache.spark.sql.functions._ deltaTable.update(Map("data" -> col("data") + 1))
- 参数
set
- 将行更新为目标列名和相应的更新表达式(作为 Column 对象)之间的 Scala 映射的规则。- 自
- 0.3.0
-
更新
根据 `set` 定义的规则更新表中的行。递增
data
列的 Java 示例。import org.apache.spark.sql.Column; import org.apache.spark.sql.functions; deltaTable.update( new HashMap<String, Column>() {{ put("data", functions.col("data").plus(1)); }} );
- 参数
set
- 作为目标列名和相应的更新表达式(作为 Column 对象)之间的 Java 映射的行更新规则。- 自
- 0.3.0
-
更新
public void update(org.apache.spark.sql.Column condition, scala.collection.immutable.Map<String, org.apache.spark.sql.Column> set) 根据 `set` 定义的规则,从表中更新与给定 `condition` 匹配的行数据。递增
data
列的 Scala 示例。import org.apache.spark.sql.functions._ deltaTable.update( col("date") > "2018-01-01", Map("data" -> col("data") + 1))
- 参数
condition
- 作为 Column 对象的布尔表达式,指定要更新的行。set
- 将行更新为目标列名和相应的更新表达式(作为 Column 对象)之间的 Scala 映射的规则。- 自
- 0.3.0
-
更新
public void update(org.apache.spark.sql.Column condition, Map<String, org.apache.spark.sql.Column> set) 根据 `set` 定义的规则,从表中更新与给定 `condition` 匹配的行数据。递增
data
列的 Java 示例。import org.apache.spark.sql.Column; import org.apache.spark.sql.functions; deltaTable.update( functions.col("date").gt("2018-01-01"), new HashMap<String, Column>() {{ put("data", functions.col("data").plus(1)); }} );
- 参数
condition
- 作为 Column 对象的布尔表达式,指定要更新的行。set
- 作为目标列名和相应的更新表达式(作为 Column 对象)之间的 Java 映射的行更新规则。- 自
- 0.3.0
-
updateExpr
根据 `set` 定义的规则更新表中的行。递增
data
列的 Scala 示例。deltaTable.updateExpr(Map("data" -> "data + 1")))
- 参数
set
- 将行更新为目标列名和相应的更新表达式(作为 SQL 格式的字符串)之间的 Scala 映射的规则。- 自
- 0.3.0
-
updateExpr
根据 `set` 定义的规则更新表中的行。递增
data
列的 Java 示例。deltaTable.updateExpr( new HashMap<String, String>() {{ put("data", "data + 1"); }} );
- 参数
set
- 作为目标列名和相应的更新表达式(作为 SQL 格式的字符串)之间的 Java 映射的行更新规则。- 自
- 0.3.0
-
updateExpr
根据给定 `condition` 匹配的行数据进行更新,执行 `set` 定义的规则。递增
data
列的 Scala 示例。deltaTable.update( "date > '2018-01-01'", Map("data" -> "data + 1"))
- 参数
condition
- 作为 SQL 格式字符串对象的布尔表达式,指定要更新的行。set
- 将行更新为目标列名和相应的更新表达式(作为 SQL 格式的字符串)之间的 Scala 映射的规则。- 自
- 0.3.0
-
updateExpr
根据给定 `condition` 匹配的行数据进行更新,执行 `set` 定义的规则。递增
data
列的 Java 示例。deltaTable.update( "date > '2018-01-01'", new HashMap<String, String>() {{ put("data", "data + 1"); }} );
- 参数
condition
- 作为 SQL 格式字符串对象的布尔表达式,指定要更新的行。set
- 作为目标列名和相应的更新表达式(作为 SQL 格式的字符串)之间的 Java 映射的行更新规则。- 自
- 0.3.0
-
merge
public DeltaMergeBuilder merge(org.apache.spark.sql.Dataset<org.apache.spark.sql.Row> source, String condition) 根据给定的合并condition
合并来自source
DataFrame 的数据。这将返回一个DeltaMergeBuilder
对象,可用于根据行是否匹配条件来指定对行执行的更新、删除或插入操作。有关此操作的完整说明以及允许的更新、删除和插入操作的组合,请参阅
DeltaMergeBuilder
。Scala 示例:使用源 DataFrame 中的新键值更新键值 Delta 表
deltaTable .as("target") .merge( source.as("source"), "target.key = source.key") .whenMatched .updateExpr(Map( "value" -> "source.value")) .whenNotMatched .insertExpr(Map( "key" -> "source.key", "value" -> "source.value")) .execute()
Java 示例:使用源 DataFrame 中的新键值更新键值 Delta 表
deltaTable .as("target") .merge( source.as("source"), "target.key = source.key") .whenMatched .updateExpr( new HashMap<String, String>() {{ put("value" -> "source.value"); }}) .whenNotMatched .insertExpr( new HashMap<String, String>() {{ put("key", "source.key"); put("value", "source.value"); }}) .execute();
- 参数
source
- 要合并的源 Dataframe。condition
- 布尔表达式作为 SQL 格式的字符串- 返回
- (未记录)
- 自
- 0.3.0
-
merge
public DeltaMergeBuilder merge(org.apache.spark.sql.Dataset<org.apache.spark.sql.Row> source, org.apache.spark.sql.Column condition) 根据给定的合并condition
合并来自source
DataFrame 的数据。这将返回一个DeltaMergeBuilder
对象,可用于根据行是否匹配条件来指定对行执行的更新、删除或插入操作。有关此操作的完整说明以及允许的更新、删除和插入操作的组合,请参阅
DeltaMergeBuilder
。Scala 示例:使用源 DataFrame 中的新键值更新键值 Delta 表
deltaTable .as("target") .merge( source.as("source"), "target.key = source.key") .whenMatched .updateExpr(Map( "value" -> "source.value")) .whenNotMatched .insertExpr(Map( "key" -> "source.key", "value" -> "source.value")) .execute()
Java 示例:使用源 DataFrame 中的新键值更新键值 Delta 表
deltaTable .as("target") .merge( source.as("source"), "target.key = source.key") .whenMatched .updateExpr( new HashMap<String, String>() {{ put("value" -> "source.value") }}) .whenNotMatched .insertExpr( new HashMap<String, String>() {{ put("key", "source.key"); put("value", "source.value"); }}) .execute()
- 参数
source
- 要合并的源 Dataframe。condition
- 布尔表达式作为 Column 对象- 返回
- (未记录)
- 自
- 0.3.0
-
restoreToVersion
public org.apache.spark.sql.Dataset<org.apache.spark.sql.Row> restoreToVersion(long version) 将 DeltaTable 恢复到由版本号指定的表的旧版本。例如:
@since 1.2.0io.delta.tables.DeltaTable.restoreToVersion(7)
- 参数
version
- (未记录)- 返回
- (未记录)
-
restoreToTimestamp
将 DeltaTable 恢复到由时间戳指定的表的旧版本。时间戳可以是 yyyy-MM-dd 或 yyyy-MM-dd HH:mm:ss 格式
例如:
@since 1.2.0io.delta.tables.DeltaTable.restoreToTimestamp("2019-01-01")
- 参数
timestamp
- (未记录)- 返回
- (未记录)
-
upgradeTableProtocol
public void upgradeTableProtocol(int readerVersion, int writerVersion) 更新表的协议版本以利用新功能。升级读取器版本将阻止所有具有旧版本 Delta Lake 的客户端访问此表。升级写入器版本将阻止旧版本 Delta Lake 写入此表。读取器或写入器版本不能降级。有关更多详细信息,请参阅在线文档和 PROTOCOL.md 中的 Delta 协议规范。
- 参数
readerVersion
- (未记录)writerVersion
- (未记录)- 自
- 0.8.0
-
addFeatureSupport
修改协议以添加受支持的功能,如果表不支持表功能,则自动升级协议。在这种情况下,当提供功能为仅写入时,表的写入器版本将升级到7
;当提供功能为读写时,读取器和写入器版本都将升级到(3, 7)
。有关更多详细信息,请参阅在线文档和 PROTOCOL.md 中的 Delta 协议规范。
- 参数
featureName
- (未记录)- 自
- 2.3.0
-
dropFeatureSupport
修改协议以删除受支持的功能。此操作始终会规范化生成的协议。协议规范化是将表功能协议转换为最弱形式的过程。这主要指将表功能协议转换为旧协议。仅当前者的功能集与旧协议完全匹配时,表功能协议才能用旧表示形式表示。当表功能协议的读取器版本高于必要时,规范化也可以降低其读取器版本。例如(1, 7, None, {AppendOnly, Invariants, CheckConstraints}) -> (1, 3) (3, 7, None, {RowTracking}) -> (1, 7, RowTracking)
dropFeatureSupport 方法可按如下方式使用
io.delta.tables.DeltaTable.dropFeatureSupport("rowTracking")
有关更多详细信息,请参阅在线文档。
- 参数
featureName
- 要删除的功能的名称。truncateHistory
- 是否在降级协议之前截断历史记录。- 自
- 3.4.0
-
dropFeatureSupport
修改协议以删除受支持的功能。此操作始终会规范化生成的协议。协议规范化是将表功能协议转换为最弱形式的过程。这主要指将表功能协议转换为旧协议。仅当前者的功能集与旧协议完全匹配时,表功能协议才能用旧表示形式表示。当表功能协议的读取器版本高于必要时,规范化也可以降低其读取器版本。例如(1, 7, None, {AppendOnly, Invariants, CheckConstraints}) -> (1, 3) (3, 7, None, {RowTracking}) -> (1, 7, RowTracking)
dropFeatureSupport 方法可按如下方式使用
io.delta.tables.DeltaTable.dropFeatureSupport("rowTracking")
注意,此命令不会截断历史记录。
有关更多详细信息,请参阅在线文档。
- 参数
featureName
- 要删除的功能的名称。- 自
- 3.4.0
-
clone
public DeltaTable clone(String target, boolean isShallow, boolean replace, scala.collection.immutable.Map<String, String> properties) 将 DeltaTable 克隆到给定目的地,以镜像现有表的数据和元数据。此处指定属性意味着目标将使用用户定义的属性覆盖源表中具有相同键的任何属性。
例如:
io.delta.tables.DeltaTable.clone( "/some/path/to/table", true, true, Map("foo" -> "bar"))
- 参数
target
- 要创建克隆的路径或表名。isShallow
- 是否创建浅克隆或深克隆。replace
- 是否使用克隆命令替换目标。properties
- 克隆中要覆盖的表属性。- 返回
- (未记录)
- 自
- 3.3.0
-
clone
public DeltaTable clone(String target, boolean isShallow, boolean replace, HashMap<String, String> properties) Python 实现使用 java.util.HashMap 作为 properties 参数的克隆。此处指定属性意味着目标将使用用户定义的属性覆盖源表中具有相同键的任何属性。
例如:
io.delta.tables.DeltaTable.clone( "/some/path/to/table", true, true, Map("foo" -> "bar"))
- 参数
target
- 要创建克隆的路径或表名。isShallow
- 是否创建浅克隆或深克隆。replace
- 是否使用克隆命令替换目标。properties
- 克隆中要覆盖的表属性。- 返回
- (未记录)
-
clone
将 DeltaTable 克隆到给定目的地,以镜像现有表的数据和元数据。例如:
io.delta.tables.DeltaTable.clone( "/some/path/to/table", true, true)
- 参数
target
- 要创建克隆的路径或表名。isShallow
- 是否创建浅克隆或深克隆。replace
- 是否使用克隆命令替换目标。- 返回
- (未记录)
- 自
- 3.3.0
-
clone
将 DeltaTable 克隆到给定目的地,以镜像现有表的数据和元数据。例如:
io.delta.tables.DeltaTable.clone( "/some/path/to/table", true)
- 参数
target
- 要创建克隆的路径或表名。isShallow
- 是否创建浅克隆或深克隆。- 返回
- (未记录)
- 自
- 3.3.0
-
cloneAtVersion
public DeltaTable cloneAtVersion(long version, String target, boolean isShallow, boolean replace, scala.collection.immutable.Map<String, String> properties) 将指定版本的 DeltaTable 克隆到给定目的地,以镜像该版本现有表的数据和元数据。此处指定属性意味着目标将使用用户定义的属性覆盖源表中具有相同键的任何属性。
例如:
io.delta.tables.DeltaTable.cloneAtVersion( 5, "/some/path/to/table", true, true, Map("foo" -> "bar"))
- 参数
version
- 要克隆的表的版本。target
- 要创建克隆的路径或表名。isShallow
- 是否创建浅克隆或深克隆。replace
- 是否使用克隆命令替换目标。properties
- 克隆中要覆盖的表属性。- 返回
- (未记录)
- 自
- 3.3.0
-
cloneAtVersion
public DeltaTable cloneAtVersion(long version, String target, boolean isShallow, boolean replace, HashMap<String, String> properties) Python 实现使用 java.util.HashMap 作为 properties 参数的 cloneAtVersion。此处指定属性意味着目标将使用用户定义的属性覆盖源表中具有相同键的任何属性。
例如:
io.delta.tables.DeltaTable.cloneAtVersion( 5, "/some/path/to/table", true, true, new java.util.HashMap[String, String](Map("foo" -> "bar").asJava))
- 参数
version
- 要克隆的表的版本。target
- 要创建克隆的路径或表名。isShallow
- 是否创建浅克隆或深克隆。replace
- 是否使用克隆命令替换目标。properties
- 克隆中要覆盖的表属性。- 返回
- (未记录)
-
cloneAtVersion
将指定版本的 DeltaTable 克隆到给定目的地,以镜像该版本现有表的数据和元数据。例如:
io.delta.tables.DeltaTable.cloneAtVersion( 5, "/some/path/to/table", true, true)
- 参数
version
- 要克隆的表的版本。target
- 要创建克隆的路径或表名。isShallow
- 是否创建浅克隆或深克隆。replace
- 是否使用克隆命令替换目标。- 返回
- (未记录)
- 自
- 3.3.0
-
cloneAtVersion
将指定版本的 DeltaTable 克隆到给定目的地,以镜像该版本现有表的数据和元数据。例如:
io.delta.tables.DeltaTable.cloneAtVersion( 5, "/some/path/to/table", true)
- 参数
version
- 要克隆的表的版本。target
- 要创建克隆的路径或表名。isShallow
- 是否创建浅克隆或深克隆。- 返回
- (未记录)
- 自
- 3.3.0
-
cloneAtTimestamp
public DeltaTable cloneAtTimestamp(String timestamp, String target, boolean isShallow, boolean replace, scala.collection.immutable.Map<String, String> properties) 将指定时间戳的 DeltaTable 克隆到给定目的地,以镜像该时间戳的现有表的数据和元数据。时间戳可以是 yyyy-MM-dd 或 yyyy-MM-dd HH:mm:ss 格式。
此处指定属性意味着目标将使用用户定义的属性覆盖源表中具有相同键的任何属性。
例如:
io.delta.tables.DeltaTable.cloneAtTimestamp( "2019-01-01", "/some/path/to/table", true, true, Map("foo" -> "bar"))
- 参数
timestamp
- 要克隆的表的版本的时间戳。target
- 要创建克隆的路径或表名。isShallow
- 是否创建浅克隆或深克隆。replace
- 是否使用克隆命令替换目标。properties
- 克隆中要覆盖的表属性。- 返回
- (未记录)
- 自
- 3.3.0
-
cloneAtTimestamp
public DeltaTable cloneAtTimestamp(String timestamp, String target, boolean isShallow, boolean replace, HashMap<String, String> properties) Python 实现使用 java.util.HashMap 作为 properties 参数的 cloneAtTimestamp。在特定时间戳将 DeltaTable 克隆到给定目标,以镜像该版本中现有表的数据和元数据。此处指定属性意味着目标将使用用户定义的属性覆盖源表中具有相同键的任何属性。
例如:
io.delta.tables.DeltaTable.cloneAtVersion( 5, "/some/path/to/table", true, true, new java.util.HashMap[String, String](Map("foo" -> "bar").asJava)
- 参数
timestamp
- 要克隆的表的版本的时间戳。target
- 要创建克隆的路径或表名。isShallow
- 是否创建浅克隆或深克隆。replace
- 是否使用克隆命令替换目标。properties
- 克隆中要覆盖的表属性。- 返回
- (未记录)
-
cloneAtTimestamp
public DeltaTable cloneAtTimestamp(String timestamp, String target, boolean isShallow, boolean replace) 将指定时间戳的 DeltaTable 克隆到给定目的地,以镜像该时间戳的现有表的数据和元数据。时间戳可以是 yyyy-MM-dd 或 yyyy-MM-dd HH:mm:ss 格式。
例如:
io.delta.tables.DeltaTable.cloneAtTimestamp( "2019-01-01", "/some/path/to/table", true, true)
- 参数
timestamp
- 要克隆的表的版本的时间戳。target
- 要创建克隆的路径或表名。isShallow
- 是否创建浅克隆或深克隆。replace
- 是否使用克隆命令替换目标。- 返回
- (未记录)
- 自
- 3.3.0
-
cloneAtTimestamp
将指定时间戳的 DeltaTable 克隆到给定目的地,以镜像该时间戳的现有表的数据和元数据。时间戳可以是 yyyy-MM-dd 或 yyyy-MM-dd HH:mm:ss 格式。
例如:
io.delta.tables.DeltaTable.cloneAtTimestamp( "2019-01-01", "/some/path/to/table", true)
- 参数
timestamp
- 要克隆的表的版本的时间戳。target
- 要创建克隆的路径或表名。isShallow
- 是否创建浅克隆或深克隆。- 返回
- (未记录)
- 自
- 3.3.0
-