apache-spark - 如何使用 PySpark 对 Delta 文件的分区动态执行插入覆盖?

标签 apache-spark pyspark azure-databricks delta-lake table-partitioning

我是 pyspark 的新手,正在寻找动态覆盖增量分区的方法。从网上可用的其他资源我可以看到 Spark 通过将下面的conf设置为“动态”来支持动态分区

spark.conf.set("spark.sql.sources.partitionOverwriteMode", "dynamic")

但是,当我尝试使用数据帧覆盖partitioned_table时,pyspark(databricks)中的以下代码行会覆盖整个表,而不是增量文件上的单个分区。

data.write.insertInto("partitioned_table", overwrite = True)

我确实遇到过使用 Hive 外部表的选项,但在我的情况下这并不简单,因为partitioned_table是基于Delta文件的。

请让我知道我在这里缺少什么。提前致谢!

最佳答案

查看此问题以及有关增量表动态覆盖的详细信息:https://github.com/delta-io/delta/issues/348

您可以使用replaceWhere

关于apache-spark - 如何使用 PySpark 对 Delta 文件的分区动态执行插入覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62258387/

相关文章:

azure - 使用 COPY INTO 和 Azure Databricks 处理 abfss 中的空格

apache-spark - PySpark,决策树(Spark 2.0.0)

apache-spark - PySpark:如何在读取 Parquet 时读取分区列

apache-spark - 用 kubernetes 代替 yarn 激发 Spark

scala - 水平连接多个数据框

hadoop - 我需要将PipelinedRDD存储到hadoop文件中

azure - 在运行时从 Azure Data Bricks Pipeline 传递 Databricks ClusterID

azure - 使用 Databricks 将 ML 模型从 ADLS 导入到 Azure ML

apache-spark - 强制驱动程序在使用 "--deploy-mode cluster"运行的 spark 独立集群中的特定从站上运行

java - Apache Spark 数据集 API - 不接受架构 StructType