Spark不同版本的接入点

不同历史版本的接入点不同,而不同项目同时存在不同版本的使用的时候,
就要快速区分不同的API,以版本和基于的数据类型以及应用场景做区分

1.6版本的Spark(Scala API)

1.接入点
离线 1 .:RDD作为API
          创建一个SparkConf对象来配置应用,
             基于这个SparkConf 创建一个SparkContext对象
             然后创建RDD
           //    val sc = new SparkContext(sparkConf)
          //          sc.textFile()、sc.sequenceFile()、sc.parallelize()  
离线2 :DataSet和DataFrame的API
            1.6版本的接入点
                SQLContext(sc)
                HiveContext(sc)     
实时:基于DStream
      Spark Streaming -- 
         基于这个SparkConf 创建一个 StreamingContext 对象
         然后创建一个 DStream 
           //    ssc = new StreamingContext(sparkConf, Seconds(5)) 或者 new StreamingContext(sc, Seconds(1))
            ssc.socketTextStream、
机器学习
       the RDD-based APIs in the spark.mllib
       the  DataFrame-based API in the spark.ml
2.常见数据结构和常见操作
    常见数据结构  RDD、pair RDD、共享变量<accumulators>和广播变量
      基于RDD的  DStream
      以及 DataSet和DataFrame
    常见操作:
       三类操作
        transformation      转化操作
        action              行动操作

2.2版本的Spark(Scala API)

离线1、
  val conf = new SparkConf().setAppName(appName).setMaster(master)
   new SparkContext(conf)

离线2、Spark SQL, DataFrames and Datasets
    2.0版本- 接入点
   在spark2.0中,引入SparkSession作为DataSet和DataFrame API的切入点,
    SparkSession封装了SparkConf、SparkContext和SQLContext。
    val spark =  SparkSession.builder()
         .appName(getProperties("mr.AppName"))
         .config("spark.sql.warehouse.dir", warehouseLocation)
         .master(getProperties("mr.master"))
         .enableHiveSupport()
         .getOrCreate()
实时1、Spark Streaming
          val conf = new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount")
          val ssc = new StreamingContext(conf, Seconds(1))

实时2、 Structure Streaming
        01. 微批次处理(micro-batch processing)-
             支持流 DataFrame/Dataset 和静态数据集之间的 join
    //读取kafka的主题topic,并将数据注册为临时表 dy_test
    val  spark =   SparkSession
             .builder()
             .config(new SparkConf().setMaster(getProperties("mr.master")))
             .appName(getProperties("mr.appName"))
             .getOrCreate()
    import spark.implicits._
    val df = spark
           .readStream
           .format("kafka")
           .option("kafka.bootstrap.servers", getProperties("kafka.brokers"))
           .option("subscribe", topicName)
           .load()
机器学习
       the  DataFrame-based API in the spark.ml
图算法
   GraphX

2.3版本的Spark(Scala API)

实时2、 Structure Streaming
            01. 微批次处理(micro-batch processing)
                    流和流的 Join 操作。支持内连接和外连接
            02.连续模式(continuous mode)-毫秒级低延迟(millisecond low-latency)模式
              流读取器连续拉取源数据并处理数据,而不是按指定的触发时间间隔读取一批数据。
              通过不断地查询源数据和处理数据,新的记录在到达时立即被处理,将等待时间缩短到毫秒,
              满足低延迟的应用程序的需求
                 支持的数据源: 
                 支持的操作:支持 map-like Dataset 操作,包括投影(projections)、selections以及其他 SQL 函数
Spark 作业可以和 Kubernetes 集群上的其他作业共享资源

blogroll

social