Spark窗口函数应用(-)

/**  * @author DT大数据梦工厂  * 新浪微博 http://weibo.com/ilovepains/  * 微信公众账号:DT_Spark  * 直播地址 YY频道:68917580  */object SparkSQLWindowFunctionOps {

  def main(args: Array[String]) {

    /**      * 创建SparkConf对象,设置Spark程序运行时的配置信息      * 例如说通过setMaster来设置程序要链接的Spark集群的Master的URL,如果设置为local,则代表      * Spark程序运行在本地,适合机器配置一般的初学者      */    val conf = new SparkConf().setAppName("SparkSQLWindowFunctionOps").setMaster("spark://hadoop2001:7077")

    /**      * 创建SparkContext对象      * SparkContext对象时Spark程序所有功能的唯一入口,无论是scala、java、python等都必须有一个SparkContext。      * SparkContext的核心作用:初始化Spark应用程序运行所需要的核心组件,包括DAGScheduler,TaskScheduler,SchedulerBackend      * 同事还会负责Spark程序往Master注册程序等      * SparkContext是整个Spark应用程序中最为至关重要的一个对象      */    val sc = new SparkContext(conf)

    val hiveContext = new HiveContext(sc)

    hiveContext.sql("use hive")

    hiveContext.sql("DROP TABLE IF EXISTS scores")

    hiveContext.sql("CREATE TABLE IF NOT EXISTS scores(name STRING,score INT)"    + " ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘ ‘ LINES TERMINATED BY ‘\\n‘")

    hiveContext.sql("LOAD DATA LOCAL INPATH ‘/root/test/testdate/topNGroup.txt‘ INTO TABLE scores")

    /**      * 使用子查询的方式完成目标数据的提取,在目标数据内部使用窗口函数row_number来进行分组排序:      * PARTITION BY:指定窗口函数分组的Key      * ORDER BY : 分组进行排序      */    val result = hiveContext.sql("SELECT name,score " +      "FROM (" +      "SELECT name,score," +      "row_number() OVER (PARTITION BY name ORDER BY score DESC) rank" +      " FROM scores " +      ") sub_scores " +      "WHERE rank <= 4")

    result.show() //在Driver的控制台上打印出结果内容

    hiveContext.sql("DROP TABLE IF EXISTS sortedResultScores")

    result.saveAsTable("sortedResultScores")

  }

}

DT大数据梦工厂由王家林老师及其团队打造,旨在为社会培养100万优秀大数据人才,Spark已是目前大数据行业主流数据处理框架和未来趋势。关注DT大数据梦工厂公众号:

DT_Spark

查看免费公开课,内容绝对详细。
YY永久免费直播频道:68917580

王家林老师联系方式:

时间: 2024-10-29 19:06:26

Spark窗口函数应用(-)的相关文章

Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十二)Spark Streaming接收流数据及使用窗口函数

官网文档:<http://spark.apache.org/docs/latest/streaming-programming-guide.html#a-quick-example> Spark Streaming官网的例子reduceByKeyAndWindow 简单的介绍了spark streaming接收socket流的数据,并把接收到的数据进行windows窗口函数对数据进行批量处理. import java.util.Arrays; import org.apache.spark.S

Spark的DataFrame的窗口函数使用

作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 SparkSQL这块儿从1.4开始支持了很多的窗口分析函数,像row_number这些,平时写程序加载数据后用SQLContext 能够很方便实现很多分析和查询,如下 val sqlContext = new SQLContext(sc) sqlContext.sql("select -.") 然而我看到Spark2.0的DataFrame功能很强大,想试试使用这种方式来实现比如ro

大数据框架对比:Hadoop、Storm、Samza、Spark和Flink--容错机制(ACK,RDD,基于log和状态快照),消息处理at least once,exactly once两个是关键

分布式流处理是对无边界数据集进行连续不断的处理.聚合和分析.它跟MapReduce一样是一种通用计算,但我们期望延迟在毫秒或者秒级别.这类系统一般采用有向无环图(DAG). DAG是任务链的图形化表示,我们用它来描述流处理作业的拓扑.如下图,数据从sources流经处理任务链到sinks.单机可以运行DAG,但本篇文章主要聚焦在多台机器上运行DAG的情况. 关注点 当选择不同的流处理系统时,有以下几点需要注意的: 运行时和编程模型:平台框架提供的编程模型决定了许多特色功能,编程模型要足够处理各种

2016年大数据Spark“蘑菇云”行动代码学习之AdClickedStreamingStats模块分析

    系统背景:用户使用终端设备(IPAD.手机.浏览器)等登录系统,系统采用js脚本发送用户信息和广告点击信息到后台日志,进入flume监控,通过kafka消息中间件传输数据,由Spark Streaming消费后将信息存储到后台.本模块主要就是实现将kafka发送的信息进行过滤,动态更新黑名单,生成有效的广告点击数据,形成广告点击趋势,将相关信息通过数据库连接池写入数据库MySql.     实现思路:由于kafka传输的广告点击数据中有一些是无效数据,需要根据一定的规则进行过滤(本方案采

sparklyr包--实现R与Spark接口

1.sparklyr包简介 Rstudio公司发布的sparklyr包具有以下几个功能: 实现R与Spark的连接: sparklyr包提供了一个完整的dplyr后端,可筛选并聚合Spark数据集,接着在R中实现分析与可视化: 利用Spark的MLlib机器学习库在R中实现分布式机器学习算法: 可以创建一个扩展,用于调用Spark API,并为Spark的所有包集提供了一个接口. 2.RStudio Server安装sparklyr包 Linux版本:Ubuntu 16.04 LTS 64bit

王家林 大数据Spark超经典视频链接全集[转]

压缩过的大数据Spark蘑菇云行动前置课程视频百度云分享链接 链接:http://pan.baidu.com/s/1cFqjQu SCALA专辑 Scala深入浅出经典视频 链接:http://pan.baidu.com/s/1i4Gh3Xb 密码:25jc DT大数据梦工厂大数据spark蘑菇云Scala语言全集(持续更新中) http://www.tudou.com/plcover/rd3LTMjBpZA/ 1 Spark视频王家林第1课:大数据时代的“黄金”语言Scala 2 Spark视

spark 累加历史+统计全部

spark 累加历史主要用到了窗口函数,而进行全部统计,则需要用到rollup函数 1  应用场景: 1.我们需要统计用户的总使用时长(累加历史) 2.前台展现页面需要对多个维度进行查询,如:产品.地区等等 2 原始数据: product_code |event_date |duration | -------------|-----------|---------| 1438 |2016-05-13 |165 | 1438 |2016-05-14 |595 | 1438 |2016-05-15

Spark Streaming中的操作函数分析

根据Spark官方文档中的描述,在Spark Streaming应用中,一个DStream对象可以调用多种操作,主要分为以下几类 Transformations Window Operations Join Operations Output Operations 一.Transformations 1.map(func) map操作需要传入一个函数当做参数,具体调用形式为 val b = a.map(func) 主要作用是,对DStream对象a,将func函数作用到a中的每一个元素上并生成新

Spark学习八:spark streaming与flume和kafka集成

Spark学习八:spark streaming与flume和kafka集成 标签(空格分隔): Spark Spark学习八spark streaming与flume和kafka集成 一Kafka 二flume和kafka的集成 三kafka和spark streaming的集成方式一kafka推送 四kafka和spark streaming的集成方式一spark streaam主动获取 五spark stream的高级应用updateStateByKey实现累加功能 六spark stre