Spark Streaming之dataset实例
Spark Streaming是核心Spark API的扩展,可实现实时数据流的可扩展,高吞吐量,容错流处理。
bin/spark-submit --class Streaming /home/wx/Stream.jar
hadoop fs -put /home/wx/123.txt /user/wx/
文本123.txt
- NOTICE:07-26 logId[0072]
- NOTICE:07-26 logId[0073]
- NOTICE:07-26 logId[0074]
- NOTICE:07-26 logId[0075]
- NOTICE:07-26 logId[0076]
- import org.apache.spark._
- import org.apache.spark.streaming._
- import org.apache.spark.streaming.StreamingContext._
- import org.apache.spark.sql.SparkSession
- object Streaming {
- def main(args: Array[String]): Unit = {
- val conf = new SparkConf().setMaster("local[2]").setAppName("RegexpExtract")
- val ssc = new StreamingContext(conf, Seconds(1))
- println("hello world")
- val lines = ssc.textFileStream("hdfs://name-ha/user/wx/")
- val ds = lines.flatMap(_.split("\n"))
- ds.print()
- ds.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("str_col")
- // Create a temporary view
- wordsDataFrame.createOrReplaceTempView("df")
- // Do word count on DataFrame using SQL and print it
- val wordCountsDataFrame =
- spark.sql(raw"""
- select str_col,
- regexp_extract(str_col,"NOTICE:\\d{2}",0) notice,
- regexp_extract(str_col,"logId\\[(.*?)\\]",0) logId
- from df""")
- wordCountsDataFrame.show(false)
- }
- ssc.start() // Start the computation
- ssc.awaitTermination() // Wait for the computation to terminate
- }
- }
执行结果
- hello world
- -------------------------------------------
- Time: 1501501752000 ms
- -------------------------------------------
- NOTICE:07-26 logId[0072]
- NOTICE:07-26 logId[0073]
- NOTICE:07-26 logId[0074]
- NOTICE:07-26 logId[0075]
- NOTICE:07-26 logId[0076]
- +------------------------+---------+-----------+
- |str_col |notice |logId |
- +------------------------+---------+-----------+
- |NOTICE:07-26 logId[0072]|NOTICE:07|logId[0072]|
- |NOTICE:07-26 logId[0073]|NOTICE:07|logId[0073]|
- |NOTICE:07-26 logId[0074]|NOTICE:07|logId[0074]|
- |NOTICE:07-26 logId[0075]|NOTICE:07|logId[0075]|
- |NOTICE:07-26 logId[0076]|NOTICE:07|logId[0076]|
- +------------------------+---------+-----------+
- -------------------------------------------
- Time: 1501501770000 ms
- -------------------------------------------
Spark Streaming之dataset实例的更多相关文章
- 大数据开发实战:Spark Streaming流计算开发
1.背景介绍 Storm以及离线数据平台的MapReduce和Hive构成了Hadoop生态对实时和离线数据处理的一套完整处理解决方案.除了此套解决方案之外,还有一种非常流行的而且完整的离线和 实时数 ...
- 5.Spark Streaming流计算框架的运行流程源码分析2
1 spark streaming 程序代码实例 代码如下: object OnlineTheTop3ItemForEachCategory2DB { def main(args: Array[Str ...
- Spark(五) -- Spark Streaming介绍与基本执行过程
Spark Streaming作为Spark上的四大子框架之一,肩负着实时流计算的重大责任 而相对于另外一个当下十分流行的实时流计算处理框架Storm,Spark Streaming有何优点?又有何不 ...
- spark streaming 接收kafka消息之四 -- 运行在 worker 上的 receiver
使用分布式receiver来获取数据使用 WAL 来实现 exactly-once 操作: conf.set("spark.streaming.receiver.writeAheadLog. ...
- Spark Streaming实例
Spark Streaming实例分析 2015-02-02 21:00 4343人阅读 评论(0) 收藏 举报 分类: spark(11) 转载地址:http://www.aboutyun.co ...
- Spark源码系列(八)Spark Streaming实例分析
这一章要讲Spark Streaming,讲之前首先回顾下它的用法,具体用法请参照<Spark Streaming编程指南>. Example代码分析 val ssc = )); // 获 ...
- Spark Streaming 结合FlumeNG使用实例
SparkStreaming是一个对实时数据流进行高通量.容错处理的流式处理系统,可以对多种数据源(如Kdfka.Flume.Twitter.Zero和TCP 套接字)进行类似map.reduce.j ...
- spark streaming 实例
spark-streaming读hdfs,统计文件中单词数量,并写入mysql package com.yeliang; import java.sql.Connection; import java ...
- Spark入门实战系列--7.Spark Streaming(上)--实时流计算Spark Streaming原理介绍
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .Spark Streaming简介 1.1 概述 Spark Streaming 是Spa ...
随机推荐
- 使用cefsharp 浏览器放大
(1)如果浏览器位置有问题,需要设置 Cef.EnableHighDPISupport(); (2)如果要放大浏览器,需要设置 browser.SetZoomLevel(1.25); Chromiu ...
- vue-cli配置多入口多出口,实现一个项目两个访问地址,区分不同上线环境
最近工作中需要把项目分割成两块,一块需要跑在微信中,通过微信jdk获取用户资料默认登录,一部分需要给原生app做webview的内嵌页面,当然这部分内容是不跑在微信中的. 所以我想到了把项目分成两部分 ...
- [Python设计模式] 第12章 基金理财更省事——外观模式
github地址:https://github.com/cheesezh/python_design_patterns 题目1 用程序模拟股民直接炒股的代码,比如股民投资了股票1,股票2,股票3,国债 ...
- Guava Preconditions 工具参数前置校验
guava 提供 Preconditions 作为代码校验的工具类,用来简化开发中对代码的校验或预处理,在逻辑开始前进行合理性校验,避免参数传入过深导致的数据错误. 并且能够在不符合校验条件的地方, ...
- Gitlab团队协作流程
一:加入群组 项目管理员添加用户到群组,赋予权限(owner.developer...). 二:拉取项目,建立分支 通过git clone拉取项目到本地,通过终端打开项目目录,创建自己的分支,并推送到 ...
- spring+springmvc+ibatis整合注解方式实例
需求说明 实现用户通过数据库验证登录需求.採用 Myeclipse+Tomcat 6.0+Mysql 5.0+JDK 1.6 2.数据库表 开发所用是Mysql数据库,仅仅建立单张用户表T_USER, ...
- linux 安装nvm,通过nvm安装node
1,nvm git地址点击打开链接,安装命令 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh ...
- CSS3制作图形大全——碉堡了
为方便观看效果图,请移步原文:https://www.jqhtml.com/8045.html Square #square { width: 100px; height: 100 ...
- hdu 3068 最长回文(manacher&最长回文子串)
最长回文 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- iOS开发之资料收集
github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github ...