我想使用列表过滤Spark数据框
var lisst=List(1,2,34)
df.filter(col("id).isin(lisst))
Run Code Online (Sandbox Code Playgroud)
给出错误
Unsupported literal type classscala.collection.immutable.$colon$colon
List(1,2,34)
Run Code Online (Sandbox Code Playgroud)
我尝试了Seq和Set得到相同的错误。
我有这样的数据帧
df.show(5)
kv |list1 |list2 |p
[k1,v2|[1,2,5,9 |[5,1,7,9,6,3,1,4,9] |0.5
[k1,v3|[1,2,5,8,9|[5,1,7,9,6,3,1,4,15] |0.9
[k2,v2|[77,2,5,9]|[0,1,8,9,7,3,1,4,100]|0.01
[k5,v5|[1,0,5,9 |[5,1,7,9,6,3,1,4,3] |0.3
[k9,v2|[1,2,5,9 |[5,1,7,9,6,3,1,4,200]|2.5
df.count()
5200158
Run Code Online (Sandbox Code Playgroud)
我想获得最大p的行,这对我来说很有用,但我不知道是否有另一种清洁方式
val f = df.select(max(struct(
col("pp") +: df.columns.collect { case x if x != "p" => col(x) }: _*
))).first()
Run Code Online (Sandbox Code Playgroud)