2017-08-22 4 views
3

データ型を取得し、大文字と小文字を区別し、必要な形式に変換する必要があります。しかし、org.apache.spark.ml.linalg.VectorUDTの使用は、VectorUDTprivateであることを示しています。また、特にorg.apache.spark.ml.linalg.VectorUDTを使用し、org.apache.spark.mllib.linalg.VectorUDTを使用する必要はありません。誰かがこれについて行く方法を提案することはできますか?VectorUDT用法

答えて

2

org.apache.spark.ml.linalgタイプの場合、あなたはorg.apache.spark.ml.linalg.SQLDataTypeswhich provide singleton instances of the private UDT types使用してスキーマを指定する必要があります。行列の

  • MatrixTypeorg.apache.spark.ml.linalg.Matrix)。ベクトルの

    scala> org.apache.spark.ml.linalg.SQLDataTypes.MatrixType.getClass 
    res0: Class[_ <: org.apache.spark.sql.types.DataType] = class org.apache.spark.ml.linalg.MatrixUDT 
    
  • VectorTypeorg.apache.spark.ml.linalg.Vector)。

    scala> org.apache.spark.ml.linalg.SQLDataTypes.VectorType.getClass 
    res1: Class[_ <: org.apache.spark.sql.types.DataType] = class org.apache.spark.ml.linalg.VectorUDT