我怎样才能将WrappedArray施展到Spark Scala中?

我怎样才能将WrappedArray施展到Spark Scala中?,scala,dataframe,apache-spark,apache-spark-sql,scala-collections,Scala,Dataframe,Apache Spark,Apache Spark Sql,Scala Collections,我使用数据帧来处理spark中的数据。我在这个数据帧中有一个数组列。在我想要进行的所有转换的末尾,我有一个数据帧,其中有一个数组列和一行。为了应用groupby、map和reduce,我希望将此数组作为列表,但我不能这样做 .drop("ScoresArray") .filter($"min_score" < 0.2) .selec

我使用数据帧来处理spark中的数据。我在这个数据帧中有一个数组列。在我想要进行的所有转换的末尾,我有一个数据帧,其中有一个数组列和一行。为了应用groupby、map和reduce,我希望将此数组作为列表,但我不能这样做

                    .drop("ScoresArray")
                    .filter($"min_score" < 0.2)
                    .select("WordsArray")
                    .agg(collect_list("WordsArray"))
                    .withColumn("FlattenWords", flatten($"collect_list(WordsArray)"))
                    .drop("collect_list(WordsArray)")
                    .collect()

        val test1 = words(0).getAs[immutable.List[String]](0)

想法?

您不能将数组强制转换为列表,但可以将一个数组转换为另一个数组

val test1=words(0).getSeq[String](0).toList

不能将数组强制转换为列表,但可以将一个数组转换为另一个数组

val test1=words(0).getSeq[String](0).toList
为什么您首先需要一个列表?只需使用数组。特别是,如果您要通过索引访问它,就像在这里的代码示例中一样
.getAs[Seq[String]]
为什么首先需要一个列表?只需使用数组。特别是,如果您要通过索引访问它,就像在这里的代码示例中一样
.getAs[Seq[String]]
[error] (run-main-0) java.lang.ClassCastException: scala.collection.mutable.WrappedArray$ofRef cannot be cast to scala.collection.immutable.List
[error] java.lang.ClassCastException: scala.collection.mutable.WrappedArray$ofRef cannot be cast to scala.collection.immutable.List
[error]         at analysis.Analysis$.main(Analysis.scala:37)
[error]         at analysis.Analysis.main(Analysis.scala)
[error]         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error]         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error]         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error]         at java.lang.reflect.Method.invoke(Method.java:498)
[error] stack trace is suppressed; run last Compile / bgRun for the full output