美文网首页
spark SQL利用窗口函数操作hive

spark SQL利用窗口函数操作hive

作者: 400476cab371 | 来源:发表于2017-12-27 11:22 被阅读704次

**

* sparksql支持了hive的窗口函数

* 罗列一些窗口函数

* 1.row_number分组排序

* 2.sum 分组统计

* 3.avg 分组统计

* 4.count 分组统计

* 5.lag 分组

* 等等

* 有利用于hive作业向spark-sql来转换。

* 咱这就用最常用的row_number来做个实验

*/

//导入一系列的依赖包

val conf =new SparkConf().setMaster("local").setAppName("SparkSqlWindowFunctionOps")

val sc =new SparkContext(conf)

val hiveContext =new HiveContext(sc)

//如果要创建的表存在就删除,然后创建我们要导入的表

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

hiveContext.sql("CREATE TABLE IF NOT EXISTS scores(name STRING,score INTEGER)"

+"ROW FORMAT DELIMITED FIELDS TERMINATED BY  '  ' LINES TERMINATED BY  ' \n'  " )//数据导入的信息

//把要处理的数据导入到hive表中

/**

* 数据

* zhangsan 50

* lisi 90

* lisi 49

* wangwu 80

* wangwu 89

* maliu 63

*/

hiveContext.sql("LOAD DATA LOCAL INPATH '/root/zgq/SparkApps/resources/readme.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()

//最后把数据保存到Hive数据仓库中

hiveContext.sql("DROP TABLE EXISTS sortedResultScores")

result.saveAsParquetFile("sortedResultScores")

对于用sparksql来操作hive是非常的方便

相关文章

  • spark SQL利用窗口函数操作hive

    ** * sparksql支持了hive的窗口函数 * 罗列一些窗口函数 * 1.row_number分组排序 *...

  • 学习中的关键的问题

    hive中的topn操作需要使用到hive的窗口函数执行操作的。 spark的udf可以实现自定义的udf的函数的...

  • Hive SQL 窗口函数

    本文首发:大数据每日哔哔-Hive SQL 窗口函数 Hive 的窗口函数 在 SQL 中有一类函数叫做聚合函数,...

  • 原创-大数据平台权限设计分享-spark sql权限

    需求背景 使用spark sql形式操作hive库表数据时,hive-site.xml中的钩子函数不会执行,原因是...

  • Spark SQL

    Spark SQL解决了什么问题 这个之前,先说下Hive,Hive有自己的语言Hive SQL(HQL),利用s...

  • Spark SQL 开窗函数

    谈到 SQL 的开窗函数,要说到HIVE了,因为这个是HIVE支持的特性,但是在Spark SQL中支持HIVE...

  • Hive sql常见操作

    基本sql操作 hive表操作 分区操作 Hive内置函数 (1)数学函数 常用的数学函数都有:round、flo...

  • Spark SQL

    Spark on hive (Spark SQL):hive只是作为了存储的角色;Spark Sql作为计算的角色...

  • Spark开发--Spark SQL--内置函数(十四)

    一、窗口函数   窗口函数是spark sql模块从1.4之后开始支持的,主要用于解决对一组数据进行操作,同时为每...

  • spark sql use hive

    spark sql 通过Spark SQL 查询hive中的数据 要求提供操作截图 切换数据库,选择指定的表; 操...

网友评论

      本文标题:spark SQL利用窗口函数操作hive

      本文链接:https://www.haomeiwen.com/subject/tnvygxtx.html