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减去而不选择列[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Python PySpark:从日期列中减去整数列错误:列对象不可调用