基础
初始化spark
val conf = new SparkConf().setAppName("wordcount")
val sc = new SparkContext(conf)
转化操作和行动操作的区别在于spark计算rdd的方式不同,只有在第一次在一个行动操作中用到转化操作中的rdd时,才会真正计算这些rdd。
创建rdd
// 驱动器程序对一个集合进行并行化
val lines = sc.parallelize(List("pandas","i like pandas"))
//读取外部数据集
val lines = sc.textFile("/path/to/README.md")
rdd操作
-
转化操作 例如filter()
filter不会改变已有的inputRDD的数据val errorsRDD = inputRDD.filter(line => line.contains(“error”))
-
行动操作 例如count()
println("Input had " + badLinesRDD.count() + “concerning lines”)
println(“Here are 10 examples:”)
badLinesRDD.take(10).foreach(println)
向spark传递函数
我们可以把定义的内联函数,方法的引用或者静态方法传递给Spark