spark中创建RDD的方式

来源:互联网 发布:淘宝鸟食苏子 编辑:程序博客网 时间:2024/05/10 13:31
spark中创建RDD的几种方式:

1、使用程序中的集合创建RDD(一般用于测试)

2、使用本地文件系统创建RDD(一般用于数据量大的文件的测试)

3、基于HDFS创建RDD(生产环境最常用的RDD创建方式)

4、使用s3创建RDD

5、基于数据流创建RDD

package com.dt.sparkimport 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()}

0 0
原创粉丝点击