为什么我得到不同的输出..agg(countDistinct("member_id") as "count")和..distinct.count?的区别是一样的之间select count(distinct member_id)和select distinct count(member_id)?
..agg(countDistinct("member_id") as "count")
..distinct.count
select count(distinct member_id)
select distinct count(member_id)
df.agg(countDistinct("member_id") as "count")
返回该member_id列的不同值的数量,而忽略所有其他列,而
member_id
df.distinct.count
将计算DataFrame中不同 记录 的数量-其中“ distinct”表示 所有 列的值相同。
因此,例如,DataFrame:
+-----------+---------+ |member_name|member_id| +-----------+---------+ | a| 1| | b| 1| | b| 1| +-----------+---------+
仅具有一个不同的member_id值,但具有两个不同的记录,因此该agg选项将返回1,而后者将返回2。
agg