[英]Cross product between two arrays in Scala Spark
Consider two arrays in scala-spark 考虑scala-spark中的两个数组
val mole_1 = Array(2.0,1.0,0.0,0.0,0.0,0.0)
val mole_2 = Array(2.0,2.0,0.0,0.0,0.0,0.0)
Now an efficient method of element-wise multiplication of the two arrays would be 现在,两个数组进行元素逐个乘法的有效方法是
val dot_Mole = (mole_1, mole_2).zipped.map(_ * _).sum
Which yields >> 6.0
How would one use zipped and map to implement cross product between these arrays to give >> 12.0
? 一个人如何使用压缩映射来实现这些数组之间的叉积给>> 12.0
?
USe only zipped, map and reduce
. 仅zipped, map and reduce
。
You can do like this: 您可以这样:
val dot_mole = Mole_1.map{ x => Mole_2.map(b => b * x)}.flatten.sum
dot_mole: Double = 12.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.