最近也是有很多同学问我,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