當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python pyspark vector_to_array用法及代碼示例

本文簡要介紹 pyspark.ml.functions.vector_to_array 的用法。

用法:

pyspark.ml.functions.vector_to_array(col, dtype='float64')

將一列 MLlib 稀疏/密集向量轉換為一列密集數組。

3.0.0 版中的新函數。

參數

col pyspark.sql.Column 或 str

輸入欄

dtypestr,可選

輸出數組的數據類型。有效值:“float64” 或 “float32”。

返回

Column

密集數組的轉換列。

例子

>>> from pyspark.ml.linalg import Vectors
>>> from pyspark.ml.functions import vector_to_array
>>> from pyspark.mllib.linalg import Vectors as OldVectors
>>> df = spark.createDataFrame([
...     (Vectors.dense(1.0, 2.0, 3.0), OldVectors.dense(10.0, 20.0, 30.0)),
...     (Vectors.sparse(3, [(0, 2.0), (2, 3.0)]),
...      OldVectors.sparse(3, [(0, 20.0), (2, 30.0)]))],
...     ["vec", "oldVec"])
>>> df1 = df.select(vector_to_array("vec").alias("vec"),
...                 vector_to_array("oldVec").alias("oldVec"))
>>> df1.collect()
[Row(vec=[1.0, 2.0, 3.0], oldVec=[10.0, 20.0, 30.0]),
 Row(vec=[2.0, 0.0, 3.0], oldVec=[20.0, 0.0, 30.0])]
>>> df2 = df.select(vector_to_array("vec", "float32").alias("vec"),
...                 vector_to_array("oldVec", "float32").alias("oldVec"))
>>> df2.collect()
[Row(vec=[1.0, 2.0, 3.0], oldVec=[10.0, 20.0, 30.0]),
 Row(vec=[2.0, 0.0, 3.0], oldVec=[20.0, 0.0, 30.0])]
>>> df1.schema.fields
[StructField(vec,ArrayType(DoubleType,false),false),
StructField(oldVec,ArrayType(DoubleType,false),false)]
>>> df2.schema.fields
[StructField(vec,ArrayType(FloatType,false),false),
StructField(oldVec,ArrayType(FloatType,false),false)]

相關用法


注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.ml.functions.vector_to_array。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。