Pyspark减去而不选择列[重复]

Posted

技术标签:

【中文标题】Pyspark减去而不选择列[重复]【英文标题】:Pyspark substract without selecting column [duplicate] 【发布时间】:2018-06-11 17:16:15 【问题描述】:

我有两张桌子

    订单 - 具有以下列

    order_id、order_date、order_customer_id、order_status

    客户 - 具有以下列

    customer_id、customer_fname、customer_lname

我想用dataframe写一段代码,相当于在不创建表的情况下跟随sql查询

SELECT customer_fname, customer_lname
FROM  customer
WHERE customer_id NOT IN (SELECT order_customer_id
                          from order)

我怎样才能做到这一点。

【问题讨论】:

【参考方案1】:

来自 pyspark v2.1.1:

使用“left_anti”连接删除另一个表中的元素:

df_result = df_customers.join(df_orders, df_customers.customer_id == df_orders.order_customer_id, 'left_anti')
df_result = df_result.select('customer_fname', 'customer_lname')

pyspark v2.1.1 之前:

使用“left_outer”连接并删除空值:

df_result = df_customers.join(df_orders, df_customers.customer_id == df_orders.order_customer_id, 'left_outer')
df_result = df_result.where('order_id is null')
df_result = df_result.select('customer_fname', 'customer_lname')

【讨论】:

以上是关于Pyspark减去而不选择列[重复]的主要内容,如果未能解决你的问题,请参考以下文章

减去 Pandas 或 Pyspark 数据框中的连续列

在 PySpark Python 中减去两个日期列

Python PySpark:从日期列中减去整数列错误:列对象不可调用

Pyspark SQL选择列为NaN的数据[重复]

遍历 pyspark 数据框中的列,而不为单个列创建不同的数据框

按日期将pyspark数据集分成两个[重复]