Spark案例:通过并行化集合创建初始RDD

spark程序可以概括为一句话,所有的spark程序以读取数据开始,以处理数据为中心,以保存数据为结束。

读取数据可以从HDFS、本地文件或者并行化程序集合来创建,本案例是通过并行化集合来创建初始RDD。

java版本

package com.spark.core;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;

import java.util.Arrays;
import java.util.List;

public class ParallelizeCollection {
    public static void main(String[] args) {
        // 创建SparkConf         SparkConf conf = new SparkConf()
                .setAppName("ParallelizeCollection")
                .setMaster("local[2]");

        // 创建JavaSparkContext         JavaSparkContext sc = new JavaSparkContext(conf);

        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

        // 要通过并行化集合的方式创建RDD,那么就调用SparkContext以及其子类的parallelize()方法         JavaRDD<Integer> nums = sc.parallelize(numbers,5);

        // 执行reduce算子操作         // 相当于,先进行1 + 2 = 3;然后再用3 + 3 = 6;然后再用6 + 4 = 10。。。以此类推         int sum = nums.reduce((x,y) -> x+y);

        System.out.println(sum);

        // 关闭JavaSparkContext         sc.close();
    }
}

scala版本

package com.spark.core

import org.apache.spark.{SparkConf, SparkContext}

object ParallelizeCollectionScala {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf()
      .setAppName(getClass.getSimpleName)
      .setMaster("local[2]")

    val sc = new SparkContext(conf)
    val a = Array(1,2,3,4,5,6,7,8,9,10)

    val rdd1 = sc.parallelize(a)

    val sum = rdd1.reduce((x,y) => x+y)

    println(sum)

  }

}

    原文作者:江户小宝
    原文地址: https://zhuanlan.zhihu.com/p/61215686
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞