《零基础入门Spark》学习笔记 Day 13

张开发
2026/4/9 23:43:58 15 分钟阅读

分享文章

《零基础入门Spark》学习笔记 Day 13
Structured Streaming数据加载SparkSession的readStream API 来创建DataFramevar df: DataFrame spark.readStream .format(socket) .option(host,host) .option(port,port) .load()format指定流处理的数据源头类型option与数据源头有关的若干选项load将数据流加载进Spark流计算有3个重要的基础概念比如flink也是如此Source流计算的数据源头Processing负责对数据流进行转换、过滤、聚合等操作Sink指的是数据流向的目的地数据处理/** 使用DataFrame API完成Word Count计算 */ // 首先把接收到的字符串以空格为分隔符做拆分得到单词数组words df df.withColumn(words, split($value, )) // 把数组words展平为单词word .withColumn(word, explode($words)) // 以单词word为Key做分组 .groupBy(word) // 分组计数 .count()数据输出/** 将Word Count结果写入到终端Console */ df.writeStream // 指定Sink为终端Console .format(console) // 指定输出选项 .option(truncate, false) // 指定输出模式 .outputMode(complete) //.outputMode(update) // 启动流处理应用 .start() // 等待中断指令 .awaitTermination()一般来说Structured Streaming支持3种Sink输出模式Complete mode输出到目前为止处理过的全部内容Append mode仅输出最近一次作业的计算结果Update mode仅输出内容有根据输入的计算结果

更多文章