首頁 > 資料庫 > mysql教程 > 如何在 Apache Spark 連線中包含空值?

如何在 Apache Spark 連線中包含空值?

DDD
發布: 2024-12-27 06:53:22
原創
128 人瀏覽過

How to Include Null Values in Apache Spark Joins?

在Apache Spark Join 中包含空值

Apache Spark 的預設聯結行為會排除具有空值的行,這對需要保存這些價值觀。本文透過解釋如何在 Apache Spark 連線操作中包含空值來解決此問題。

預設 Spark 行為

預設情況下,Spark 執行內部聯接,這會導致消除連接條件中涉及的任一列中具有空值的行。為了說明這一點,請考慮以下範例:

joinedDf.show() 的輸出如下所示:

正如預期的那樣,在numberDf 的“numbers”列從連接結果中排除。

包括 Null Values

Spark 透過空安全等式運算子提供了解決此問題的方法。透過使用以下程式碼,可以將空值包含在聯接操作中:

此修改後的聯結操作會產生以下輸出,其中現在包括先前排除的具有空值的行:

要注意的是,在1.6 之前的Spark版本中應謹慎使用此空安全相等運算符,因為它需要昂貴的笛卡爾

Spark 2.3.0 及更高版本

在Spark 2.3.0及更高版本中,PySpark 中可以使用Column.eqNullSafe 方法,而%=< SparkR 中可以使用;=>% 運算子來達到相同的結果。此外,Spark 2.2.0 中可以使用 SQL 語法 IS NOT DISTINCT FROM 以及 DataFrame API 在連線操作中包含空值。

以上是如何在 Apache Spark 連線中包含空值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板