4
Vector(spark.ml.linalg.Vector)型のSparkデータフレーム列に適用するUDAFを作成しています。私はspark.ml.linalgパッケージに依存しているので、データフレームとRDDの間を行き来する必要はありません。 UDAFインサイド Spark ML使用時のVectorUDTの問題
、私は入力、バッファのデータ型を指定する必要があり、出力スキーマ: https://github.com/apache/spark/blob/master/mllib/src/main/scala/org/apache/spark/mllib/linalg/Vectors.scala :def inputSchema = new StructType().add("features", new VectorUDT())
def bufferSchema: StructType =
StructType(StructField("list_of_similarities", ArrayType(new VectorUDT(), true), true) :: Nil)
override def dataType: DataType = ArrayType(DoubleType,true)
VectorUDTは、私がspark.mllib.linalg.Vectorで使用するものです しかし
、私が代わりにspark.mlからそれをインポートしよう:import org.apache.spark.ml.linalg.VectorUDT
私は、ランタイムエラー(ビルド時にエラーなし)を取得:
class VectorUDT in package linalg cannot be accessed in package org.apache.spark.ml.linalg
これは期待ですか、回避策を提案できますか?私はスパーク2.0.0でスパーク2.0.0
これは受け入れられる回答である必要があります。 – zero323