我试图使用pyspark 2.2.0将每个矩阵行乘以给定向量中的相应元素 .
例如 numpy
我可以这样做:
foo = np.array([[1,2,3], [4,5,6]])
bar = np.array([[2],[3]])
bar * foo
结果是:
array([[ 2, 4, 6],
[12, 15, 18]])
请注意,我不想做点积 . 它只是将矩阵行中的每个元素乘以向量中的对应元素 .
在pyspark 2.2.0中有没有办法做到这一点?我尝试了很多东西,却无法得到我想要的东西 . 我猜一个人可以用 map
这样做,但不知何故感觉不对 .
有更好的方法吗?
1 回答
例如,您可以逐行连接两个数据帧,然后使用
UDF
将ArrayType
的每个元素乘以IntegerType
:首先让我们用行索引创建数据帧:
现在加入他们并获得最终结果: