0
私は多くの列を含むspark.ml DataFrame
を持っています。これらの列には、行ごとにSparseVector
が含まれています。私はselect
にそのDataFrame
から列に見える、それがRDD[Vector]
であることを得ることができないことを除いて...完璧なようだSpark.ml SparseVectorを含むDataFrame
def colStats(X: RDD[Vector]): MultivariateStatisticalSummary
:私は、各列にMultivariateStatisticalSummary.colStats
を適用したい、とcolStats
署名があります。
val df: DataFrame = data.select(shardId)
val col = df.as[(org.apache.spark.mllib.linalg.Vector)].rdd
val s: MultivariateStatisticalSummary = Statistics.colStats(col)
(Scalaで)メッセージでコンパイルされません:私も試した
Unable to find encoder for type stored in a Dataset. Primitive types (Int, String, etc) and Product types (case classes) are supported by importing sqlContext.implicits._ Support for serializing other types will be added in future releases.
val col = df.as[(org.apache.spark.mllib.linalg.Vector)].rdd
:ここに私の試みでエラーが発生して、実行時に失敗し
val df = data.select(shardId)
val col: RDD[Vector] = df.map(x => x.asInstanceOf[org.apache.spark.mllib.linalg.Vector])
val s: MultivariateStatisticalSummary = Statistics.colStats(col)
:
java.lang.ClassCastException: org.apache.spark.sql.catalyst.expressions.GenericRowWithSchema cannot be cast to org.apache.spark.mllib.linalg.Vector
どのようにg apはDataFrame
とcolStats
の間ですか?