VectorUDT用法

时间:2017-08-22 05:11:27

标签: apache-spark vector apache-spark-mllib apache-spark-ml

我必须获取数据类型并进行大小写匹配并将其转换为某些所需的格式。但org.apache.spark.ml.linalg.VectorUDT的使用情况显示VectorUDTprivate。另外,我特别需要使用org.apache.spark.ml.linalg.VectorUDT而不是org.apache.spark.mllib.linalg.VectorUDT。有人可以建议如何解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

对于org.apache.spark.ml.linalg类型,您应使用org.apache.spark.ml.linalg.SQLDataTypes which provide singleton instances of the private UDT types指定架构:

  • MatrixType表示矩阵(org.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
    
  • VectorType适用于矢量(org.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