火花代码并不适用于ec2的火花

时间:2015-04-30 02:52:59

标签: amazon-ec2 apache-spark rdd

我正在学习如何使用spark,我编写了一段这样的代码:

object TestSpark {

  def main (args: Array[String]) {
    val conf = new SparkConf().setAppName("Test").setMaster("local")
    val sc = new SparkContext(conf)
    val matrix = rddTypeChange(sc.textFile(args(0)))

    val order=matrix.map(s=>s.length).reduce(_+_)
    println(order)
  }

  def typeChange(str:Array[String]):Array[Double]={
    val array:Array[Double]=new Array(str.length)
    for(i<-0 until str.length)
      array(i)=str(i).toDouble
    array
  }

  def rddTypeChange(rdd:RDD[String]):RDD[Array[Double]]={
    rdd.map(data=>typeChange(data.split("\t")))
  }
}

我有一个名为matrix.txt的文件,如下所示:

1 2

3 4

,arg(0)是matrix.txt

结果将是4(打印),当我在我的IDE(想法)中运行它时,它可以工作。但是如果我导出一个jar并在ec2上运行jar,它就不起作用。在ec2上,matrix.txt在hdfs上。

为什么?

0 个答案:

没有答案