spark Scala简单加法和其他数学计算

时间:2015-01-12 19:03:03

标签: scala hadoop apache-spark

您好我是apache Spark的新手,在我的用例中我将有3个输入,全部存在于HDFS中,我需要从hdfs中的文件中提取数据并添加两个数据并将结果与​​第三个数据分开,我该怎么办?

感谢您的快速回复。

1 个答案:

答案 0 :(得分:0)

这样的事情应该有效:

  import org.apache.spark.SparkContext
  import org.apache.spark.SparkContext._
  import org.apache.spark.SparkConf
  import org.apache.spark.rdd.RDD

  val conf = new SparkConf().setAppName("spark-scratch").setMaster("local")
  val sc = new SparkContext(conf)

  val A = sc.textFile("/user/root/spark/cc.dat").map(_.split(",")).map(fc => (fc(3).toInt))
  val B = sc.textFile("/user/root/spark/aci.dat").map(_.split(",")).map(fc => (fc(4).toInt))
  val C = sc.textFile("/user/root/spark/bta.dat").map(_.split(",")).map(fc => (fc(5).toInt))

  val calc = { r: ((Int, Int), Int) =>
    val ((a, b), c) = r
    a * b * c / 12
  }

  val result = (A zip B zip C).map(calc)

(它编译,但我没有测试它)