如何填充或更新現有Delta表中的列

了解如何填充或更新現有Delta表中的列。

寫的亞當Pavlacka

最後發布時間:2022年5月10日

問題

您有一個現有的Delta表,其中有幾個空列。您需要使用來自原始Parquet文件的數據填充或更新這些列。

解決方案

在這個例子中,有一個beplay体育app下载地址表,它是一個已有的Delta表。它有一個缺少值的地址列。更新後的數據以Parquet格式存在。

  1. 創建一個DataFrame從Parquet文件中使用Apache Spark API語句:
    %python updatesDf = spark.read.parquet("/path/to/raw-file")
  2. 的內容updatesDF DataFrame
    % python顯示器(updatesDf)
  3. 創建一個表updatesDf DataFrame。在本例中,它被命名更新
    % python updatesDf.createOrReplaceTempView(“更新”)
  4. 檢查更新表的內容,並將其與beplay体育app下载地址
    % python顯示器(客戶)beplay体育app下载地址
  5. 使用合並成方法合並數據更新表變為原來的beplay体育app下载地址表格
    %sql合並到客戶使用客戶的更新beplay体育app下载地址。customerId =來源。customerId WHEN MATCHED THEN UPDATE SET address = updates。地址WHEN NOT MATCHED THEN INSERT (customerId, address) VALUES (updates.customerId, updates.address)

在這裏,beplay体育app下载地址是具有地址缺少值的列。更新表是否從DataFrame updatesDf,它是通過從原始文件讀取數據而創建的。的地址的值填充原始Delta表的列更新控件中的任何現有值地址列。

如果更新控件中尚未包含的客beplay体育app下载地址戶beplay体育app下载地址客戶表,然後該命令添加這些新的客戶記錄。

更多使用的例子合並成,參見《並入(三角洲湖)》(AWS|Azure|GCP).