spark中创建RDD的方式

本文介绍了在Apache Spark中创建弹性分布式数据集(RDD)的五种常见方式:使用程序中的集合、本地文件系统、HDFS、Amazon S3及数据流等,并通过示例展示了基于集合创建RDD的过程及基本的文本处理任务。
摘要由CSDN通过智能技术生成
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()
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值