【问题标题】:Insert or Update a delta table from a dataframe in Pyspark从 Pyspark 中的数据帧插入或更新增量表
【发布时间】:2021-02-23 20:38:34
【问题描述】:

我目前有一个 pyspark 数据框,我最初使用以下代码创建了一个增量表 -

df.write.format("delta").saveAsTable("events")

现在,由于上述数据框根据我的要求每天填充数据,因此为了将新记录附加到增量表中,我使用了以下语法 -

df.write.format("delta").mode("append").saveAsTable("events")

现在,我在数据块和集群中所做的这一切。我想知道如何在 python 中编写通用的 pyspark 代码,如果它不存在,它将创建 delta 表,如果存在 delta 表,则追加记录。我想做这件事,因为如果我把我的 python 包给某人,他们不会在他们的环境中具有相同的增量表,因此它应该是从代码动态创建的。

【问题讨论】:

  • 这就是写的时候对追加模式的定义。

标签: apache-spark pyspark delta-lake


【解决方案1】:

如果您还没有 Delta 表,那么它将在您使用 append 模式时创建。所以你不需要编写任何特殊的代码来处理表不存在和退出的情况。

附:只有在执行合并到表中而不是追加时才需要这样的代码。在这种情况下,代码将如下所示:

if table_exists:
  do_merge
else:
  df.write....

附:这是该模式的generic implementation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    相关资源
    最近更新 更多