【spark】RDD创建

首先我们要建立 sparkconf 配置文件,然后通过配置文件来建立sparkcontext。

import org.apache.spark._
object MyRdd {
    def main(args:Array[String]): Unit ={
        //初始化配置:设置主机名和程序主类的名字
        val conf = new SparkConf().setMaster("local[*]").setAppName("MyRdd");
        //通过conf来创建sparkcontext
        val sc = new SparkContext(conf);
      
    }
}

然后我们通过 sparkcontext 来创建RDD

创建RDD的几种方式

1.基于程序中的集合创建RDD-作用:主要用于测试 

  通过 sc.parallelize(collection)方法来创建RDD

       /*
        * 从scala集合中创建RDD
        * 计算:1+2+3+...+100
        */
        val nums = List(1,2,3,4,5);//集合
        val rdd = sc.parallelize(nums);//创建rdd
        val sum = rdd.reduce(_+_);
        println(sum);    

2.基于本地文件创建RDD-作用:大数据量的测试  

"file:///home/hadoop/spark-1.6.0-bin-hadoop2.6/examples/src/main/resources/people.json"

3.基于HDFS创建RDD-作用:生产环境最常用的RDD创建方式

"hdfs://112.74.21.122:9000/user/hive/warehouse/hive_test"

  通过sc.textFile(file)方法来读取文件

       /*
        * 从本地文件系统创建RDD
        * 计算 people.json 文件中字符总长度
        */
        val rows = sc.textFile("file://")//文件地址或者HDFS文件路径
        val length = rows.map(row=>row.length()).reduce(_+_)
        println("total chars length:"+length)

4.基于DB、NoSQL(例如HBase)、S3、基于数据流创建RDD

 

猜你喜欢

转载自www.cnblogs.com/zzhangyuhang/p/8984312.html