天天看点

【Spark实战系列】structuredstreaming 消费 kafka 数据实现简单的 wordcount

最近也是有很多同学问我,StructuredStreaming结合kafka的使用,我简单的写了一个wordcount的demo,后续会有更加具体和详细的介绍,今天先来一个简单的demo吧.代码在本地可以直接跑通.

添加依赖:

<dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql-kafka-0-10_2.11</artifactId>
            <version>${spark.version}</version>
        </dependency>
           

 Structured Streaming将实时流抽象成一张无边界的表,输入的每一条数据当成输入表的一个新行,同时将流式计算的结果映射为另外一张表,完全以结构化的方式去操作流式数据。我们通过下面的代码看一下就明白了.

package spark

import org.apache.log4j.{Level, Logger}
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.streaming.OutputMode
import org.apache.spark.sql.functions._

/**
  * structredstreaming消费kafka的数据,实现exactly-once的语义;
  */
object StructuredStreaming {
  def main(args: Array[String]): Unit = {
    Logger.getLogger("org.apache.spark").se
           

继续阅读