Spark Streaming官方文档翻译基本概念之sql与Mllib

Spark Streaming官方文档翻译Spark Streaming总览
Spark Streaming官方文档翻译基本概念之初始化与Dstream
Spark Streaming官方文档翻译基本概念之输入数据流和接收器
Spark Streaming官方文档翻译基本概念之转换操作
Spark Streaming官方文档翻译基本概念之输出操作
Spark Streaming官方文档翻译基本概念之sql与Mllib
Spark Streaming官方文档基本概念之缓存与检查点
Spark Streaming官方文档翻译基本概念之累加器、广播变量和检查点
Spark Streaming官方文档翻译Spark Streaming应用之部署,升级,监控
Spark Streaming官方文档翻译Spark Streaming性能调优
Spark Streaming官方文档翻译Spark Streaming容错
Spark Streaming官方文档翻译Spark Streaming +Kafka 集成指南
Spark Streaming官方文档翻译Spark Streaming自定义接收器

基本概念

DataFrame和SQL操作(DataFrame and SQL Operations)

您可以轻松地在流数据上使用DataFrames和SQL操作。 您必须使用StreamingContext正在使用的SparkContext创建SparkSession。此外,这样做可以在驱动程序失败时重新启动。这是通过创建一个延迟实例化的SparkSession单例来实现的。如下面的例子所示。它修改了前面的字数统计示例,以使用DataFrames和SQL生成字数统计。每个RDD都被转换为一个DataFrame,注册为一个临时表,然后使用SQL进行查询。

val words: DStream[String] = ...

words.foreachRDD { rdd =>

  // Get the singleton instance of SparkSession
  val spark = SparkSession.builder.config(rdd.sparkContext.getConf).getOrCreate()
  import spark.implicits._

  // Convert RDD[String] to DataFrame
  val wordsDataFrame = rdd.toDF("word")

  // Create a temporary view
  wordsDataFrame.createOrReplaceTempView("words")

  // Do word count on DataFrame using SQL and print it
  val wordCountsDataFrame =
    spark.sql("select word, count(*) as total from words group by word")
  wordCountsDataFrame.show()
}

查看完整的源代码

您还可以执行SQL查询在不同线程(即与运行中的StreamingContext异步)的流数据上定义的表。必须确保您设置了StreamingContext来记住足够数量的流数据,以便查询可以运行。则,StreamingContext(它不知道任何异步SQL查询)将在查询完成之前删除旧的流数据。例如,如果您想要查询上一批数据,但是您的查询可能需要5分钟才能运行完成,那么可以调用streamingContext.remember(minutes(5))(在Scala中,或在其他语言中等效)。

参见{DataFrames和SQL](https://spark.apache.org/docs/latest/sql-programming-guide.html)指南以了解更多关于DataFrames的信息。

MLlib操作(MLlib Operations)

您还可以轻松使用MLlib提供的机器学习算法。首先,有流式机器学习算法(如流式线性回归流式KMeans等)可以同时学习流式数据,也可以将模型应用到流式数据上。除此之外,对于更大类别的机器学习算法,您可以离线学习一个算法模型(即使用历史数据),然后在线将该模型应用于流数据。有关更多细节,请参阅MLlib指南。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值