【发布时间】:2019-07-29 05:01:45
【问题描述】:
我对 scala spark 很陌生。在这里,我有一个字数统计程序,其中我将输入文件作为参数传递,而不是对其进行硬编码并读取它。但是当我运行程序时,我在线程“main”java.lang.ArrayIndexOutOfBoundsException 中得到一个错误异常:0
我认为这是因为我没有提到我在主课上要接受的论点,但不知道该怎么做。
我尝试按原样运行程序并尝试更改运行配置。我不知道如何在我的主类中将文件名(在代码中)作为参数传递
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import org.apache.spark.sql.types.{StructType,StructField,StringType};
import org.apache.spark.sql.Row;
object First {
def main(args : Array[String]): Unit = {
val filename = args(0)
val cf = new SparkConf().setAppName("Tutorial").setMaster("local")
val sc = new SparkContext(cf)
val input = sc.textFile(filename)
val w = input.flatMap(line => line.split(" ")).map(word=>
(word,1)).reduceByKey(_ + _)
w.collect.foreach(println)
w.saveAsTextFile(args(1))
}
}
我希望通过在我的主类中传递正确的参数(输入文件并将输出文件保存为参数)来运行这个程序。我正在使用 Scala Eclipse IDE。我不知道要对我的程序进行哪些更改,请帮助我,因为我是新手。
【问题讨论】:
-
<your running command> argument1 argument2?我认为你应该使用命令行界面。 -
这里看起来很标准。
标签: scala apache-spark