简体   繁体   English

Scala Spark中两个数组之间的叉积

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM