Spark HiveContext:插入覆盖从中读取的同一个表

Man*_*pta 2 hive apache-spark pyspark hivecontext

我想在 HiveContext 中使用 PySpark 应用 SCD1 和 SCD2。在我的方法中,我正在读取增量数据和目标表。阅读后,我将加入他们的更新插入方法。我正在对所有源数据帧进行 registerTempTable。我正在尝试将最终数据集写入目标表,但面临着在从中读取的表中不可能插入覆盖的问题。

请为此提出一些解决方案。我不想将中间数据写入物理表并再次读取它。

是否有任何属性或方法可以存储最终数据集而不保留对其读取的表的依赖性。这样,就有可能覆盖该表。

请建议。

hi-*_*zir 5

您永远不应该覆盖您正在读取的表。如果发生故障,它可能会导致数据损坏和数据完全丢失之间的任何结果。

同样重要的是要指出,正确实现的 SCD2 永远不应该覆盖整个表,并且可以作为(大部分)追加操作来实现。据我所知,如果没有可变存储,SCD1 就无法有效实现,因此不太适合 Spark。