我有一个使用此语法收集的列表。
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
答案 0 :(得分:0)
由于您是在数据框上进行收集,因此您将获得“行列表”。最简单的方法是在收集之前将其转换为数据集。即(假设金额为Double):
val cutoff = df.withColumn("rank", dense_rank() over bydf).filter("rank=5").select("amount").as[Double].collectAsList()