无法在scala中索引列表,因为“java.util.list[etc…”“不接受参数错误”

wfsdck30  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(324)

我用这个语法收集了一个列表。

val cutoff = df.withColumn("rank", dense_rank() over bydf).filter("rank=5").select("amount").collectAsList()

[[10.5]]

当我试图索引列表截断以提取值10.5时,我得到了以下错误:

Error:(38, 17) java.util.List[org.apache.spark.sql.Row] does not take parameters

如何修复此问题并从嵌套列表中提取10.5

ttvkxqim

ttvkxqim1#

因为您是在Dataframe上收集数据,所以会返回一个行列表。最简单的方法是在收集之前将其转换为数据集。也就是说(假定金额是双倍):

val cutoff = df.withColumn("rank", dense_rank() over bydf).filter("rank=5").select("amount").as[Double].collectAsList()

相关问题