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



我有一个Kudu数据库,里面有一个表。每天,我都会启动一个批处理作业,接收要接收的新数据(ETL管道(。

如果:,我想插入新数据

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

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

您可能还对使用Spark Structured Streaming或Kafka而不是批处理作业感兴趣。我甚至在GitHub上找到了一个例子(但没有检查它的工作效果,以及它是否考虑了现有数据(。

最新更新