我正在学习如何使用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上。
为什么?