Spark中的数组数据集(1.6.1)



因此,我一直在尝试重新格式化一个正在努力使用数据集API的项目,并且在编码错误时遇到了一些问题。根据我阅读的内容,我认为我应该能够将原始值的数组存储在数据集中。但是,以下类给我编码错误:

case class InvertedIndex(partition:Int, docs:Array[Int], indices:Array[Long], weights:Array[Double])
val inv = RDD[InvertedIndex]
val invertedIndexDataset = sqlContext.createDataset(inv)
invertedIndexDataset.groupBy(x => x.partition).mapGroups {
    //...
}

有人可以帮助我了解这里的问题吗?数据集当前无法处理原始数组,还是我需要做一些额外的事情才能使它们起作用?

谢谢

编辑1:

这是我遇到的完整错误

Error:(223, 84) Unable to find encoder for type stored in a Dataset.  Primitive types (Int, String, etc) and Product types (case classes) are supported by importing spark.implicits._  Support for serializing other types will be added in future releases.
    val similarities = invertedIndexDataset.groupByKey(x => x.partition).mapGroups {

SPARK 2.0中预期的以下作品。

import spark.implicits._
spark.createDataset( Array(1,2) :: Array(1) :: Array(2) :: Nil )
res0:org.apache.spark.sql.Dataset[Array[Int]] = [value: array<int>]

相关内容

  • 没有找到相关文章

最新更新