【发布时间】:2017-03-16 06:10:29
【问题描述】:
我有一个如下的数据框
cust_id req req_met
------- --- -------
1 r1 1
1 r2 0
1 r2 1
2 r1 1
3 r1 1
3 r2 1
4 r1 0
5 r1 1
5 r2 0
5 r1 1
我必须查看客户,看看他们有多少要求,看看他们是否至少满足过一次。可以有多个具有相同客户和要求的记录,一个满足和不满足。在上述情况下,我的输出应该是
cust_id
-------
1
2
3
我所做的是
# say initial dataframe is df
df1 = df\
.groupby('cust_id')\
.countdistinct('req')\
.alias('num_of_req')\
.sum('req_met')\
.alias('sum_req_met')
df2 = df1.filter(df1.num_of_req == df1.sum_req_met)
但在少数情况下它没有得到正确的结果
如何做到这一点?
【问题讨论】:
标签: python apache-spark pyspark apache-spark-sql