[英]Scala/Spark - Create Dataset with one column from another Dataset
我正在尝试从案例类创建一个只有一列的数据集。
下面是代码:
case class vectorData(value: Array[String], vectors: Vector)
def main(args: Array[String]) {
val spark = SparkSession.builder
.appName("Hello world!")
.master("local[*]")
.getOrCreate()
import spark.implicits._
//blah blah and read data etc.
val word2vec = new Word2Vec()
.setInputCol("value").setOutputCol("vectors")
.setVectorSize(5).setMinCount(0).setWindowSize(5)
val dataset = spark.createDataset(data)
val model = word2vec.fit(dataset)
val encoder = org.apache.spark.sql.Encoders.product[vectorData]
val result = model.transform(dataset).as(encoder)
//val output: Dataset[Vector] = ???
}
如代码的最后一行所示,我希望输出只是具有Vector
类型和vectors
数据的第二列。
我试过:
val output = result.map(o => o.vectors)
但是这一行突出显示错误No implicit arguments of type: Encoder[Vector]
如何解决这个问题?
我认为线:
implicit val vectorEncoder: Encoder[Vector] = org.apache.spark.sql.Encoders.product[Vector]
应该做
val output = result.map(o => o.vectors)
正确的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.