使用三角洲湖泊删除数据

时间:2019-11-28 07:09:13

标签: apache-spark pyspark parquet delta-lake

我们正在使用Delta Lake工具,使用以下语法从现有Delta Lake文件中删除数据

deltaTable.alias("tgt").merge(source=in_df_delete_data.alias("src"),condition=expr(v_condition)).whenMatchedDelete().execute()

删除3000条记录似乎需要15分钟,该数据包含2 GB的700K分区。

我们在初始化Spark-Session时使用了以下配置

  • spark.databricks.optimizer.dynamicPartitionPruning
  • spark.databricks.delta.optimizeWrite.enabled
  • spark.databricks.delta.autoCompact.enabled

基于阅读,这些配置主要是为了支持写操作。当我们不在Databricks环境中时,是否支持上述配置。

火花-2.4 的Python-3.6 Delta Packahe-io.delta:delta-core_2.11:0.4.0

在尝试编写MERGE SQL语句时,Pysaprk代码失败,并显示(https://docs.databricks.com/spark/latest/spark-sql/language-manual/merge-into.html

mismatched input 'MERGE' expecting {'(', 'SELECT', 'FROM', 'ADD', 'DESC', 'WITH', 'VALUES', 'CREATE', 'TABLE', 'INSERT', 'DELETE', 'DESCRIBE', 'EXPLAIN', 'SHOW', 'USE', 'DROP', 'ALTER', 'MAP', 'SET', 'RESET', 'START', 'COMMIT', 'ROLLBACK', 'REDUCE', 'REFRESH', 'CLEAR', 'CACHE', 'UNCACHE', 'DFS', 'TRUNCATE', 'ANALYZE', 'LIST', 'REVOKE', 'GRANT', 'LOCK', 'UNLOCK', 'MSCK', 'EXPORT', 'IMPORT', 'LOAD'}(line 1, pos 1)

Pyspark(https://github.com/delta-io/delta/issues/28)似乎尚不支持

能否请您提出一些方法来找出导致速度缓慢的原因,以及是否有替代方法来提高性能。

或者是否有任何特定于增量的配置需要传递给Spark会话。

0 个答案:

没有答案