spark中创建RDD的方式

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()
}

你可能感兴趣的:(spark)