博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SparkSQL介绍及快速入门
阅读量:3952 次
发布时间:2019-05-24

本文共 1234 字,大约阅读时间需要 4 分钟。

1.什么是SparkSQL?

用于处理构造化数据的spark模块

可以通过DataFrame和DataSet处理数据

2.SparpSQL特点

  1. 易整合 可以使用java、scala、python、R 等语言的API操作
  2. 统一数据访问 连接到任何数据源的方式相同
  3. 兼容hive 标准的数据连接 (JDBC/ODBC)

SQL优缺点

优点:表达非常清晰,难度低,易学习

缺点: 负责的业务需要复杂的SQL,复杂的分析,SQL嵌套较多。机器学习较难实习

3.Hive 和SparkSQL的对比

Hive 是将sql转化成MapReduce进行计算

SparkSQL是将SQL转换RDD集进行计算

4.SparkSQL中的两个抽象

什么是RDD?

弹性分布式数据集

什么是DataFrame?

DataFrame是以RDD为基础的带有Schema元信息的分布式数据集(DataFrame=Schema+RDD*N)

什么是DataSet?

含有类型信息的DataFrame就是DataSet (DataSet =DataFrame+类型=schema+RDD*N+类型)

DataSet包含了DataFrame的功能

2 集群模式初体验

2.1 DataFrame

2.1.1读取txt文件并输出

1.在本地创建一个文件,有id、name、age三列,用空格分隔,然后上传到hdfs上

vim /opt/person.txt

1 zhangsan 202 lisi 293 wangwu 254 zhaoliu 305 tianqi 356 kobe 40
//Spark session available as 'spark'.// 1.读取数据安装空格进行切分var lineRDD=sc.textFile("file:///opt/person.txt").map(_.split(" "))// 2.定义class样例类对象 用来接收文件数据case class Person(id:Int, name:String, age:Int)// 3.将读取出的RDD 关联到Person中val personRDD = lineRDD.map(x => Person(x(0).toInt, x(1), x(2).toInt)) // 4.将带有对象的RDDh转换成DataFrameval personDF = personRDD.toDF// 5.读取数据和schema元数据信息personDF.show// 6.展示出元数据信息(查看表结构)personDF.printSchema// 7.将personDF 转换为转换为临时表personDF.createOrReplaceTempView("t_person")// 8.编写SQL语句查询数据(可以根据自己的需求来写)spark.sql("select name from t_person").show

转载地址:http://uokzi.baihongyu.com/

你可能感兴趣的文章
Android 显示系统
查看>>
小议C语言中数据的存储类型
查看>>
android双屏显示的一些修改与尝试
查看>>
Android Display System --- Surface Flinger
查看>>
有webservice参与的系统的单元测试, 使用mock object (二)
查看>>
有webservice参与的系统的单元测试, 使用mock object (三)
查看>>
delayed_job 的 基本用法
查看>>
ruby , rspec中测试 module
查看>>
ruby 中的多行字符串(multiple lines of string) %Q, %w, %q
查看>>
linux 中的 photoshop/paintshop: GIMP
查看>>
linux link (ln) 的用法 : ln -s <目标文件> <link_name>
查看>>
多个workers下 delayed_job的问题:
查看>>
capistrano 的几个参数( logger, set-before)
查看>>
对使用开源项目的一点儿讨论
查看>>
ruby中的单元测试
查看>>
python 读写yaml
查看>>
转载: nginx 域名跳转一例~~~(rewrite、proxy)
查看>>
博客搬到了新地址: shensiwei.com / siwei.me
查看>>
linux内核编译 fatal error: openssl/opensslv.h: No such file or directory
查看>>
zip bzip2 gzip xz tar文件解压缩
查看>>