【发布时间】:2017-09-13 03:23:36
【问题描述】:
在 Scala/Spark 数据帧中
dfReduced.schema.fieldNames
是一个 java 字符串数组 (String[])。然而,
dfReduced.schema.fieldNames.asInstanceOf[Seq[String]]
抛出
java.lang.ClassCastException: [Ljava.lang.String;不能转换为 scala.collection.Seq
将相同的数组分配给 Seq[String] 很好。
val f3:Seq[String]=dfReduced.schema.fieldNames
作为一名 Java 程序员,这让我感到惊讶,因为两者都需要在 Java 中进行转换。有人可以解释为什么 Scala 有这种区别
(注意,我不是在批评,我只是想更好地理解 Scala)
【问题讨论】:
-
区别在于
run-time类型转换与compile-time类型归属。您可能会对这个 StackOverflow link 感兴趣。
标签: scala apache-spark schema