我试图像这样在我的HashMap中创建通用值类型:

val aMap = ArrayBuffer[HashMap[String, Any]]()
aMap += HashMap()
aMap(0)("aKey") = "aStringVal"
aMap(0)("aKey2") = true        // a bool value
aMap(0)("aKey3") = 23          // an int value


这可以在我的spark-shell中工作,但它在scala上给了我这个ClassNotFoundException。

org.apache.spark.streaming.scheduler.JobScheduler logError - Error running job streaming job 1521859195000 ms.0
java.lang.ClassNotFoundException: scala.Any
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)


我正在使用Scala 2.11。任何想法可能是什么原因造成的?

最佳答案

最终对我来说是使用DataFrame创建具有混合数据的.toDF

我有:

val baseDataFrame = Seq(
    ("value1", "one"),
    ("value2", 2),
    ("value3", 3)
  ).toDF("column1", "column2")


并且此更改解决了问题:

val baseDataFrame = Seq(
    ("value1", "one"),
    ("value2", "2"),
    ("value3", "3")
  ).toDF("column1", "column2")

10-07 19:36