【问题标题】:Cross product between two arrays in Scala SparkScala Spark中两个数组之间的叉积
【发布时间】:2017-11-22 09:51:49
【问题描述】:

考虑 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)

现在两个数组的元素乘法的有效方法是

val dot_Mole = (mole_1, mole_2).zipped.map(_ * _).sum

Which yields  >> 6.0

如何使用 zipped 和 map 来实现这些数组之间的叉积以给出 >> 12.0

仅使用zipped, map and reduce

【问题讨论】:

    标签: arrays scala apache-spark


    【解决方案1】:

    你可以这样做:

    val dot_mole = Mole_1.map{ x => Mole_2.map(b => b * x)}.flatten.sum
    dot_mole: Double = 12.0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 1970-01-01
      • 2019-06-06
      • 2019-01-27
      • 2017-10-24
      • 2021-02-06
      • 1970-01-01
      相关资源
      最近更新 更多