left semi join
左表为准,在右表中查找匹配的数据,如果查找成功则仅返回左边的记录,否则返回null

left anti join
left anti join与left semi join相反,是以左表为准,在右表中查找匹配的记录,如果查找成功,则返回null,否则仅返回左边的记录,其基本实现流程如下图所示。

pivot
列转行
userid subject score
1 a 3
2 b 4
3 c 5
1 a 6
dataSet.groupBy(‘userid’)
.pivot(‘subject’)
.sum(‘score’)
.na.fill(0): //可以在最后对空值进行处理,空值默认填充0.
也可以在pivot第二个参数传一个seq 用于指定透视哪些值
输出结果:
userid a b c
1 9 0 0
2 0 4 0
3 0 0 6
stack 列转行
用于以上输出结果例子的话
select
userid ,
stack(3,‘a’,a,‘b’,b,‘c’,c)
from table
2万+

被折叠的 条评论
为什么被折叠?



