Scala Spark-如何处理更新

Scala Spark-如何处理更新,scala,apache-spark,aggregate-functions,Scala,Apache Spark,Aggregate Functions,我在更新数据池中的行时遇到了一个问题。假设我们有来自某个地方的记录。这些记录需要写在HDFS/AzureBlobStorage/where上。 假设我们的记录有一个唯一的ID。 假设我们已经写了一些没有任何重复ID的记录。 因此,我们: ID | name 1 | Andrew 2 | Bob 3 | Alice (这是一个例子,所以我只使用了一个字段来更新)我们将这些记录保存在HDFS/AzureBlobStorage/wher

我在更新数据池中的行时遇到了一个问题。假设我们有来自某个地方的记录。这些记录需要写在HDFS/AzureBlobStorage/where上。 假设我们的记录有一个唯一的ID。 假设我们已经写了一些没有任何重复ID的记录。 因此,我们:

ID      |    name
1       |   Andrew
2       |   Bob
3       |   Alice
(这是一个例子,所以我只使用了一个字段来更新)我们将这些记录保存在HDFS/AzureBlobStorage/where上。 现在,一个新的记录出现了:

ID=1  name=Mark
我们要做的是更新此记录。有可能是这样吗? 我想到的一个解决方案是用一个时间戳保存所有记录,并在一个窗口上使用聚合,按时间戳排序(降序),保持第一行


您是否有任何解决方案可以让我在任何时间更新最新的行?我认为这是不可能的,但我不确定。

通常Apache Spark不支持直接更新RDD/dataframes和底层数据源,但是有第三个框架允许这样做。其中之一是


如果您想从spark实现这一点,那么一种方法是存储所有更改数据的事件,并将当前状态回复为处理所有事件日志。

我将尝试使用Delta。我不知道。非常感谢。寻找scd type1实现。这将覆盖现有记录。