常见创建RDD的方法

来源:互联网 发布:java学费多少钱 编辑:程序博客网 时间:2024/05/22 14:48

第一阶段(1-3月):会从浅入深,基于大量案例实战,深度剖析和讲解Spark,并且会包含完全从企业真实复杂业务需求中抽取出的案例实战。课程会涵盖Scala编程详解、Spark核心编程、Spark SQLSpark StreamingSpark GraphXSparkRMachine LearningSpark内核以及源码剖析、性能调优、企业级案例实战等部分

第二阶段(Spark超大规模大数据案例实战):使用了Spark技术生态栈中的Spark CoreSpark SQLSpark StreamingSparkRMachine Learning,进行离线计算和实时计算业务模块的开发、数据的关联性分析、用户行为模式和特征的训练与应用、用户网络的社区发现、用户影响力、能量传播、标签传播、标签推理、人群划分、年龄段预测、商品交易时序跳转

创建RDD方法

创建RDD的方式(方法很多,场景也很多)以下为较为常见的七中方式:

1,使用程序中的集合创建RDD;

2,使用本地文件系统创建RDD

3,使用HDS创建RDD

4,基于DB创建RDD

5,基于NoSQL,例如HBase

6,基于S3创建RDD

7,基于数据流创建RDD

我们可以在再智能设备 例如手机 平板 电视 上使用Spark,也可以在PC和Server使用使用SDpark!

多线程方式模拟分布式,Local模式 默认情况下如果失败了 就是失败了。下面代码使用程序中的集合创建RDD。

(1)通过集合创建RDD

object TestClassRdd_1 {  def main(args:Array[String]): Unit ={    val conf =new SparkConf()    conf.setAppName("My first Test in class of the Spark")    conf.setMaster("local")    val sc = new SparkContext(conf)    val number = 1 to 100    val rdd =sc.parallelize(number)    val sum =rdd.reduce(_+_)  //1+2=3 3+3=6 6+4=10    println("1+ ... +100"+ sum)  }}
(2)使用HDFS创建RDD
val conf = new SparkConf()conf.setAppName()    conf.setMaster("local")       val sc = new SparkContext()    val numbers = 1 to 100 //创建一个scala集合    val rdd = sc.textFile(“/input/data/reanme.md”)  //创建了一个ParallelCollectionRDD    val linesLength = rdd.map(line => line.length)      val sum = linesLength.reduce(_ + _)   println("The total characters of the file is : " + sum)
(3)本地文件创建RDD,主要用于测试大量数据
val conf = new SparkConf()conf.setAppName()    conf.setMaster("Create RDD in local")       val sc = new SparkContext()    val numbers = 1 to 100     val rdd = sc.textFile(“D://spark//reanme.md”)  //创建了一个ParallelCollectionRDD    val linesLength = rdd.map(line => line.length)      val sum = linesLength.reduce(_ + _)   println("The total characters of the file is : " + sum)

将代码拷贝到Spark集群,进行运行,上图其实将1-100分成了32个Partition,下面运行parallelize(默认情况Spark最大允许cores),生成parallelizeCollectionRDDreduce不会产生RDD。

实际上Spark的并行度到底应该设置为多少呢?每个Core可以乘上2-4个partitions,任务处理大小不同,所需CPU、MEM均不同,设置CORES大小在64-128之间,跟并行度有关,跟数据规模无关,只跟每个Stage在计算Partition所需的CPU、MEM有关。基于文件系统创建RDDBlockManagerMaster会持有整个Application的Block的位置、Block所占用的存储空间等元数据信息,在Spark的Driver的DAGScheduler中就是通过这些信息来确认数据运行的本地性的。



DT大数据梦工厂

新浪微博:www.weibo.com/ilovepains/

微信公众号:DT_Spark

博客:http://.blog.sina.com.cn/ilovepains

TEL:18610086859

Email:18610086859@vip.126.com









0 0
原创粉丝点击