Rumah > pangkalan data > tutorial mysql > Bagaimana Menggunakan Klausa IN dengan Betul untuk Menapis DataFrames Pyspark?

Bagaimana Menggunakan Klausa IN dengan Betul untuk Menapis DataFrames Pyspark?

Susan Sarandon
Lepaskan: 2024-12-27 18:31:20
asal
594 orang telah melayarinya

How to Correctly Use the IN Clause for Filtering Pyspark DataFrames?

Menapis Pyspark DataFrame dengan seperti SQL IN Klausa: Menangani Ralat Sintaks

Apabila cuba menapis Pyspark DataFrame menggunakan SQL- seperti klausa IN, anda mungkin menghadapi ralat sintaks jika nilai klausa IN tidak disertakan dalam satu petikan. Untuk menyelesaikan isu ini, hantar nilai secara eksplisit sebagai rentetan dalam pertanyaan SQL.

Penyelesaian:

Daripada menentukan nilai secara langsung sebagai tuple, gunakan pemformatan rentetan untuk memasukkan nilai ke dalam pertanyaan SQL. Contohnya:

df = sqlc.sql("SELECT * FROM my_df WHERE field1 IN {}".format(str((1, 2, 3))))
Salin selepas log masuk

Pendekatan ini memastikan bahawa nilai dinilai dalam konteks persekitaran SQL dan dikendalikan dengan betul oleh penghurai SQL.

Pendekatan Alternatif: Menggunakan Spark API DataFrame

Spark juga menyediakan cara yang lebih mudah untuk menapis DataFrames menggunakan klausa IN melaluinya API bingkai data. Pendekatan ini biasanya lebih disukai kerana kesederhanaan dan ekspresifnya.

from pyspark.sql.functions import col

df.where(col("field1").isin((1, 2, 3))).count()
Salin selepas log masuk

Di sini, fungsi isin() mengambil tuple atau tatasusunan sebagai hujah dan menyemak sama ada setiap nilai dalam lajur medan1 terdapat dalam senarai input . Kaedah ini ringkas dan menawarkan rangkaian operasi manipulasi data yang berkuasa.

Atas ialah kandungan terperinci Bagaimana Menggunakan Klausa IN dengan Betul untuk Menapis DataFrames Pyspark?. 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