Spark学习之Spark SQL(8)

Spark学习之Spark SQL(8)

1. Spark用来操作结构化和半结构化数据的接口——Spark SQL、

2. Spark SQL的三大功能

2.1 Spark SQL可以从各种结构化数据(例如JSON、Hive、Parquet等)中读取数据。
2.2 Spark SQL不仅支持在Spark程序内使用SQL语句进行查询,也支持从类似商业智能软件Tableau这样的外部工具中通过标准数据库连接器(JDBC/ODBC)连接Spark SQL进行查询。
2.3 当在Spark程序内使用Spark SQL时,Spark SQL支持SQ与常规的Python/Java/Scala代码高度整合,包括连接RDD与SQL表、公开的自定义SQL函数接口等。

3. SchemaRDD(1.3版本后为DataFrame)是存放Row对象的RDD,每个Row对象代表一行记录。SchemaRDD还包含记录的结果信息(即数据字段)。

4. 连接Spark SQL

带有Hive支持的Spark SQL的Maven索引
    groupID =org.apache.spark
    artifactID = spark-hive_2.10
    version = 1.2.0

5. 在应用使用Spark

5.1 初始化Spark
        //Sacla中SQL的import的声明
        import org.apache.spark.sql.hive.HiveContext
        import org.apache.spark.sql.SQLContext
        //Scala中SQL导入隐式转换支持
        val hiveCtx = ...//创建HiveContext
        import hiveCtx._//导入隐式转换支持
        //创建SQL上下文环境
        val sc = new SparkContext(...)
        val hiveCtx = new HiveContext(sc)
5.2 基本的查询示例
        val input = hiveCtx.jsonFile(inputFile)
        //注册输入的SchemaRDD
        input.registerTempTable("tweets")
        //依据tetwwtCount(转发计算)宣传推文
        val topTweeter = hiveCtx.sql("SELECT text,retweetCount FROM tweets ORDER BY retweetCount LIMIT 10")

6. 用户自定义函数(UDF)

Scala版本的字符串长度UDF
    registerFunction("strLenScala",(_:string).length)
    val tweetLength = hiveCtx.sql("SELECT strLenScala('tweet') FROM tweets LIMIT 10")

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java后端生活

MySQL(一)数据库的简单介绍

1588
来自专栏北京马哥教育

运维工具箱

运维精简工具箱 Bootstrapping:  Kickstart、Cobbler、rpmbuild/xen、kvm、lxc、 Openstack、 Clou...

39710
来自专栏CSDN技术头条

知识分享:详解Hadoop核心架构

  通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖...

1815
来自专栏编程直播室

TypeScript 看见未来的 JavaScript

1293
来自专栏用户画像

第一章

C)堆栈操作                             D)存储器按内部选择地址

442
来自专栏数据科学与人工智能

【Spark研究】用Apache Spark进行大数据处理第二部分:Spark SQL

在Apache Spark文章系列的前一篇文章中,我们学习了什么是Apache Spark框架,以及如何用该框架帮助组织处理大数据处理分析的需求。 Spark ...

26610
来自专栏pangguoming

Hadoop基本介绍

1、Hadoop的整体框架  Hadoop由HDFS、MapReduce、HBase、Hive和ZooKeeper等成员组成,其中最基础最重要元素为底层用于存储...

2968
来自专栏大数据智能实战

spark 2.0.1(技术预览版)的编译与测试(附一些新特性的介绍)

spark 2.0的预览版在前几个月已经吵得沸沸扬扬,趁着今天一起编译了下这个版本,还是非常方便的。 这回采用MVN来进行编译,具体见官网的编译帮助。 Bui...

1746
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(4)-创建项目解决方案

前言 为了符合后面更新后的重构系统,文章于2016-11-1日重写 设计中术语,概念这种东西过于模糊,我们必须学习累积才能认识这些概念模型。 我无法用文章...

1909
来自专栏菩提树下的杨过

贴个Silverlight试试看

倒腾了半天,发现还是无法直接在编辑器里插入SL,直接切换到html视图,贴上sl的object代码后,一发布,居然自动识别为flash,无奈只能用iframe才...

1919

扫码关注云+社区