exists (DataFrame)

Devuelve un Column objeto para una subconsulta EXISTS.

Sintaxis

exists()

Devoluciones

Column: objeto Column que representa una subconsulta EXISTS.

Notas

El exists método proporciona una manera de crear una columna booleana que comprueba la presencia de registros relacionados en una subconsulta. Cuando se aplica dentro de , DataFrameeste método permite filtrar filas en función de si existen registros coincidentes en el conjunto de datos relacionado. El objeto resultante Column se puede usar directamente en condiciones de filtrado o como una columna calculada.

Ejemplos

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|
# +-----------+-------------+---------+