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")
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Spark学习之Spark调优与调试(7)
Spark学习之Spark调优与调试(7) 1. 对Spark进行调优与调试通常需要修改Spark应用运行时配置的选项。 当创建一个SparkContext时就会创建一个SparkConf实例。 2. Spark特定的优先级顺序来选择实际配置: 优先级最高的是在用户代码中显示调用set()方法设置选项; 其次是通过spark-submit传递的参数; 再次是写在配置文件里的值; 最后是系统的默认值。 3.查看应用进度信息和性能指标有两种方式:网页用户界面、驱动器和执行器进程生成的日志文件。 4.Spark执行的组成部分:作业、任务和步骤 需求:使用Spark shell完成简单的日志分析应用。 scala> val input =sc.textFile("/home/spark01/Documents/input.text") input: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[3] at textFile at <console>:27 scala> val tokenized = input....
- 下一篇
Spark学习之Spark Streaming(9)
Spark学习之Spark Streaming(9) 1. Spark Streaming允许用户使用一套和批处理非常接近的API来编写流式计算应用,这就可以大量重用批处理应用的技术甚至代码。 2. Spark Streaming使用离散化(discretized steam)作为抽象表示,叫做DStream。DStream是随时间推移而收到的数据的序列。 3. DSteam支持两种操作:转换操作(transformation),会生成一个新的DStream;另一种是输出操作(output operation),可以把数据写入到外部系统中。 4. Spark Stream的简单例子 需求:使用maven或者sbt打包编译出来独立应用的形式运行。从一台服务器的7777端口接受一个以换行符分隔的多行文本,要从中筛选出包含单词error的行,并打印出来。 //Maven 索引 groupID = org.apache.spark artifactID = spark-steaming_2.10 version = 1.2.0 //Scala流计算import声明 import org.apa...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,CentOS7官方镜像安装Oracle11G
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Hadoop3单机部署,实现最简伪集群