第 18 章 DStream 编程进阶

18.1 累加器和广播变量

RDD中的累加器和广播变量的用法完全一样. RDD中怎么用, 这里就怎么用.

18.2 DataFrame ans SQL Operations

你可以很容易地在流数据上使用 DataFrames 和SQL。你必须使用SparkContext来创建StreamingContext要用的SQLContext

此外,这一过程可以在驱动失效后重启。我们通过创建一个实例化的SQLContext单实例来实现这个工作。如下例所示。我们对前例word count进行修改从而使用DataFrames和 SQL 来产生 word counts 。每个 RDD 被转换为 DataFrame,以临时表格配置并用 SQL 进行查询。

val spark = SparkSession.builder.config(conf).getOrCreate()
import spark.implicits._
count.foreachRDD(rdd =>{
    val df: DataFrame = rdd.toDF("word", "count")
    df.createOrReplaceTempView("words")
    spark.sql("select * from words").show
})

18.3 Caching / Persistence

和 RDDs 类似,DStreams 同样允许开发者将流数据保存在内存中。也就是说,在DStream 上使用 persist()方法将会自动把DStreams中的每个RDD保存在内存中。

DStream中的数据要被多次计算时,这个非常有用(如在同样数据上的多次操作)。对于像reduceByWindowreduceByKeyAndWindow以及基于状态的(updateStateByKey)这种操作,保存是隐含默认的。

因此,即使开发者没有调用persist(),由基于窗操作产生的DStreams会自动保存在内存中。

Copyright © 尚硅谷大数据 2019 all right reserved,powered by Gitbook
该文件最后修订时间: 2019-02-10 22:58:19

results matching ""

    No results matching ""