Pyspark Spark 1.5元素产品

Pyspark Spark 1.5元素产品,pyspark,Pyspark,Spark 1.5最近问世,并在python()中实现了元素级乘法 我可以在向量上应用加权/变换向量(下面代码中的v2)来生成向量。但是,当我尝试将其应用于RDD[Vector]时,我得到: TypeError:无法将类型转换为向量 这是我的密码: from pyspark.mllib.linalg import Vectors from pyspark.mllib.feature import ElementwiseProduct v1 = sc.parallelize(Vectors.de

Spark 1.5最近问世,并在python()中实现了元素级乘法

我可以在向量上应用加权/变换向量(下面代码中的v2)来生成向量。但是,当我尝试将其应用于RDD[Vector]时,我得到:

TypeError:无法将类型转换为向量

这是我的密码:

from pyspark.mllib.linalg import Vectors
from pyspark.mllib.feature import ElementwiseProduct

v1 = sc.parallelize(Vectors.dense([2.0, 2.0, 2.0]))
v2 = Vectors.dense([0.0, 1.0, 2.0])

transformer = ElementwiseProduct(v2)
transformedData = transformer.transform(v1)
print transformedData.collect()

如何生成一个RDD[Vector],它是v1和v2的哈达玛积?

事实证明,我需要将v1转换为行矩阵

mat = RowMatrix(v1)
例如:

from pyspark.mllib.linalg.distributed import RowMatrix

v1 = sc.parallelize([[2.0, 2.0, 2.0], [3.0, 3.0, 3.0]])
mat = RowMatrix(v1)
v2 = Vectors.dense([0.0, 1.0, 2.0])

transformer = ElementwiseProduct(v2)
transformedData = transformer.transform(mat.rows)
print transformedData.collect()
将打印: [DenseVector([0.0,2.0,4.0]),DenseVector([0.0,3.0,6.0])]


但我真正需要的是一个函数,它允许v2也有多个向量,而不是一个向量矩阵,但到目前为止,它似乎还不存在。

事实证明,我需要将v1转换为行矩阵

mat = RowMatrix(v1)
例如:

from pyspark.mllib.linalg.distributed import RowMatrix

v1 = sc.parallelize([[2.0, 2.0, 2.0], [3.0, 3.0, 3.0]])
mat = RowMatrix(v1)
v2 = Vectors.dense([0.0, 1.0, 2.0])

transformer = ElementwiseProduct(v2)
transformedData = transformer.transform(mat.rows)
print transformedData.collect()
将打印: [DenseVector([0.0,2.0,4.0]),DenseVector([0.0,3.0,6.0])]

我真正需要的是一个函数,它允许v2也有多个向量,而不是一个向量矩阵,但到目前为止,它似乎还不存在