【发布时间】:2017-04-20 01:12:28
【问题描述】:
输入.csv:
200,300,889,767,9908,7768,9090
300,400,223,4456,3214,6675,333
234,567,890
123,445,667,887
我想要的: 读取输入文件并与集合“123,200,300”进行比较,如果找到匹配,则给出匹配数据 200,300(来自 1 个输入行)
300(来自 2 个输入行)
123(来自 4 个输入行)
我写的:
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.rdd.RDD
object sparkApp {
val conf = new SparkConf()
.setMaster("local")
.setAppName("CountingSheep")
val sc = new SparkContext(conf)
def parseLine(invCol: String) : RDD[String] = {
println(s"INPUT, $invCol")
val inv_rdd = sc.parallelize(Seq(invCol.toString))
val bs_meta_rdd = sc.parallelize(Seq("123,200,300"))
return inv_rdd.intersection(bs_meta_rdd)
}
def main(args: Array[String]) {
val filePathName = "hdfs://xxx/tmp/input.csv"
val rawData = sc.textFile(filePathName)
val datad = rawData.map{r => parseLine(r)}
}
}
我得到以下异常:
java.lang.NullPointerException
请指出我哪里出错了
【问题讨论】:
-
你是如何运行你的程序的?你的jar已经编译打包了吗?
-
是的,我编译并打包了jar :: spark-submit --class "sparkApp" --master local --num-executors 2 --driver-memory 1g --executor-memory 1g --执行器核心 1 /home/spark_app/sparkApp/target/scala-2.10/sparkapp_2.10-1.0.jar
-
当我运行代码时,我得到了异常
-
啊,是的,现在查看代码!然而@giaosudau 说代码已编译并运行!
-
我们如何实现什么?您的代码没有多大意义。你愿意解释一下你想用你的代码做什么吗?
标签: scala apache-spark