spark中创建RDD的几种方式:
1、使用程序中的集合创建RDD(一般用于测试)
2、使用本地文件系统创建RDD(一般用于数据量大的文件的测试)
3、基于HDFS创建RDD(生产环境最常用的RDD创建方式)
4、使用s3创建RDD
5、基于数据流创建RDD
package com.dt.spark import org.apache.spark.{SparkConf, SparkContext} /** * Created by 全全 on 2016/3/9. */ object RDDBasedOnCollections { def main(args: Array[String]) { val conf = new SparkConf() conf.setAppName("RDDBasedOnCollections") conf.setMaster("local") val sc = new SparkContext(conf) //创建一个scala集合 val numbers = 1 to 100 val rdd = sc.parallelize(numbers) val sum = rdd.reduce(_+_) //1+2=3 3+3=6 6+4=10 ...... println("1+2+3+...+99+100= "+sum) } }
def main(args:Array[String]){ val conf = new SparkConf() //创建SparkConf对象 conf.setAppName("Wow,My First Spark App!") //设置应用程序的名称,在程序运行的监控界面可以看到名称 conf.setMaster("local") //此时程序在本地运行,不需要安装Spark集群 val sc = new SparkContext(conf) //创建SparkContext对象,通过传入SparkConf实例来定制Spark运行的具体参数和配置信息 val lines = sc.textFile("E://scala//spark-1.6.0-bin-hadoop2.6//README.md", 1) //读取本地文件并设置为一个Partition val words = lines.flatMap { line => line.split(" ")}//对每一行的字符串进行单词拆分并把所有行的拆分结果通过flat合并成一个大的集合 val pairs = words.map { word => (word,1)} val wordCounts = pairs.reduceByKey(_+_) //对相同的key,进行Value的累计(包括Local和Reducer级别同时Reduce) wordCounts.foreach(wordNumberPair => println(wordNumberPair._1+":"+wordNumberPair._2)) sc.stop() }