小编Cha*_*uki的帖子

如果值包含在scala spark中的列表中,如何过滤行?

我想使用列表过滤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)

我尝试了SeqSet得到相同的错误。

scala apache-spark

2
推荐指数
1
解决办法
2650
查看次数

如何从数据帧中获取特定列中具有最大值的行?

我有这样的数据帧

    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)

scala apache-spark apache-spark-sql spark-dataframe

0
推荐指数
1
解决办法
1984
查看次数