ada (DataFrame)

Column Mengembalikan objek untuk Subkueri EXISTS.

Sintaksis

exists()

Pengembalian Barang

Column: Objek Column yang mewakili subkueri EXISTS.

Catatan

Metode ini exists menyediakan cara untuk membuat kolom boolean yang memeriksa keberadaan rekaman terkait dalam subkueri. Saat diterapkan dalam DataFrame, metode ini memungkinkan Anda memfilter baris berdasarkan apakah rekaman yang cocok ada di himpunan data terkait. Objek yang Column dihasilkan dapat digunakan langsung dalam kondisi pemfilteran atau sebagai kolom komputasi.

Examples

data_customers = [
    (101, "Alice", "USA"), (102, "Bob", "Canada"), (103, "Charlie", "USA"),
    (104, "David", "Australia")
]
data_orders = [
    (1, 101, "2023-01-15", 250), (2, 102, "2023-01-20", 300),
    (3, 103, "2023-01-25", 400), (4, 101, "2023-02-05", 150)
]
customers = spark.createDataFrame(
    data_customers, ["customer_id", "customer_name", "country"])
orders = spark.createDataFrame(
    data_orders, ["order_id", "customer_id", "order_date", "total_amount"])

from pyspark.sql import functions as sf
customers.alias("c").where(
    orders.alias("o").where(
        sf.col("o.customer_id") == sf.col("c.customer_id").outer()
    ).exists()
).orderBy("customer_id").show()
# +-----------+-------------+-------+
# |customer_id|customer_name|country|
# +-----------+-------------+-------+
# |        101|        Alice|    USA|
# |        102|          Bob| Canada|
# |        103|      Charlie|    USA|
# +-----------+-------------+-------+

customers.alias("c").where(
    ~orders.alias("o").where(
        sf.col("o.customer_id") == sf.col("c.customer_id").outer()
    ).exists()
).orderBy("customer_id").show()
# +-----------+-------------+---------+
# |customer_id|customer_name|  country|
# +-----------+-------------+---------+
# |        104|        David|Australia|
# +-----------+-------------+---------+