Rumah > pangkalan data > tutorial mysql > Bagaimana Mengendalikan Nilai Null Semasa Apache Spark Joins?

Bagaimana Mengendalikan Nilai Null Semasa Apache Spark Joins?

Patricia Arquette
Lepaskan: 2025-01-01 10:33:12
asal
526 orang telah melayarinya

How to Handle Null Values During Apache Spark Joins?

Cara Memasukkan Nilai Null dalam Apache Spark Join

Apache Spark tidak menyertakan baris dengan nilai null secara lalai semasa gabungan. Ini boleh menyebabkan masalah apabila anda ingin mengekalkan semua data, termasuk nulls. Artikel ini meneroka penyelesaian kepada masalah ini.

Gelagat Spark Lalai

Apabila anda melakukan gabungan pada dua DataFrames, Spark akan mengecualikan baris dengan nilai nol. Sebagai contoh, pertimbangkan DataFrames berikut:

val numbersDf = Seq(
  ("123"),
  ("456"),
  (null),
  ("")
).toDF("numbers")

val lettersDf = Seq(
  ("123", "abc"),
  ("456", "def"),
  (null, "zzz"),
  ("", "hhh")
).toDF("numbers", "letters")
Salin selepas log masuk

Jika kami melakukan gabungan pada DataFrames ini, kami akan mendapat output berikut:

+-------+-------+
|numbers|letters|
+-------+-------+
|    123|    abc|
|    456|    def|
|       |    hhh|
+-------+-------+
Salin selepas log masuk

Seperti yang anda lihat, baris dengan null dalam lajur nombor telah dikecualikan daripada keputusan.

Penyelesaian

Spark menyediakan istimewa pengendali kesaksamaan null-safe untuk pengendalian cantuman dengan nilai nol:

numbersDf
  .join(lettersDf, numbersDf("numbers") <=> lettersDf("numbers"))
  .drop(lettersDf("numbers"))
Salin selepas log masuk

Pengendali ini akan kembali benar jika kedua-dua operan adalah batal atau jika ia sama. Menggunakan operator ini, kita boleh mendapatkan output yang diingini:

+-------+-------+
|numbers|letters|
+-------+-------+
|    123|    abc|
|    456|    def|
|   null|    zzz|
|       |    hhh|
+-------+-------+
Salin selepas log masuk

Pilihan Tambahan

Spark 2.3.0 :

  • PySpark: Gunakan Column.eqNullSafe
  • SparkR: Gunakan %<=>%
  • SQL: Penggunaan TIDAK BERBEZA DARI

Spark Terdahulu Versi:

Sebelum Spark 1.6, sambungan selamat-null memerlukan produk Cartesian.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Nilai Null Semasa Apache Spark Joins?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan