码迷,mamicode.com
首页 > 数据库 > 详细

spark SQL编程动手实战-01

时间:2015-03-02 19:08:17      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:sqlcontext   case class   registerastable   schemardd   dsl   

首先创建SparkContext上下文:

技术分享

接着引入隐身转换,用于把RDD转成SchemaRDD:

技术分享

接下来定义一个case class 来用于描述和存储SQL表中的每一行数据:

技术分享

接下来要加载数据,这里的测试数据是user.txt文件:

我们创建好use.txt增加内容并上传到hdfs中:

技术分享

web控制台查询:

技术分享

hdfs命令查询:

技术分享


加载数据:

技术分享

验证数据是否加载成功:

技术分享


注册成为user的table:

技术分享


此刻user还是一个MappedRDD:

技术分享

执行age 大于13 小于19的SQL查询:

技术分享

此刻的teenagers已经隐身转换成SchemaRDD

技术分享

通过collect操作触发job的提交和执行:

技术分享

结果:

技术分享


DSL是Domain Specific Language的缩写,使用DSL我们可以直接基于读取的RDD数据进行SQL操作,无需注册成Table。

我们重新启动下spark-shell:

技术分享


同样使用"user.txt"的数据:

技术分享

验证user:

技术分享


我们这次直接使用SQL查询操作:

技术分享


使用toDebugString查看下结果:

技术分享

可以发现使用DSL的使用teenagers在内部已经被隐身转换了SchemaRDD的实例

技术分享


可以发现与前面那张注册Table方式的结果是一样的


spark SQL编程动手实战-01

标签:sqlcontext   case class   registerastable   schemardd   dsl   

原文地址:http://blog.csdn.net/stark_summer/article/details/43059303

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!