pyspark:如果不存在键或row.timestamp是最新的,则插入数据帧

时间:2018-11-08 16:57:02

标签: apache-spark pyspark apache-spark-sql apache-kudu

我有一个带有表的Kudu数据库。每天,我都会启动一个批处理作业,以接收要提取的新数据(一条ETL管道)。

在以下情况下,我想插入新数据:

  • 密钥不存在
  • 如果存在键,则仅当新行的时间戳列较新时才更新行

1 个答案:

答案 0 :(得分:0)

我认为您需要的是将新数据与现有表进行左外部联接,首先必须将结果保存到临时表中,然后使用{{3}将其移动到原始表中}。

您可能还对使用Spark结构化流或Kafka而不是批处理作业感兴趣。我什至在GitHub上找到了SaveMode.Append(不过,我无法检查它的运行状况以及是否考虑了现有数据)。