spark学习笔记1

一、开发sql程序

(1) new sql context)

(2) val data = sql context.read ("joon").load (jsonfilepath) //返回的是张表

(3)data.show() //可以直接使用show查看数据

(4) 上传至服务器

(5) 提交作业

spark.submit --class --master -jars filepath


4. hive Context 的使用

5. spark session 的使用

(1)新版本不再使用 context,而使用 spark session

6. spark-shell/ spark-sql 使用

1) hive.site拷贝到spark的conf目录下

2) 启动的时候需要指定mysql 驱动 jars

7. thrift-server/beeline的使用

二、 Data Frame 和 Dataset

1. DataFrame是分布式的数据集,按照列进行存储,它包含schema信息,类似数据库表,RDD也是分布式的数据记录,只不过它没有schema信息,类似于文本文件中的一行数据。

2. DataFrame 是以列组织的数据集(类似于数据库中的表),也就是DataSet的集合

3. RDD和DataFrame的对比

4、常用的 DataFrame常见的API

(1) select.

(2) filter

(3) show

5. DataFrame 与 RDD 相互操作有如下两种方式

第一种方式是反射的方式

1) 定义 case class

2) 将 RDD 转换为 DatàFrame (需要导入隐式转换)

第二种方式(通过编程方式)

(1)将 RDD 转换为 Row

(2)定义一个 structType

(3)通过 spark 的 createDataFrame()对Row和structType进行关联

6. DataSet类似于DataFrame,但是有更加严格的语法检查和类型检查。

三、外部数据源

(1)每个应用程序都加载数据(以前学习的load)

(2)对加载的数据作处理完之后要将结果存入到目的地(这个目的地可以是 Mpql/HBases/json

(3)主要架构如下

 

(4) 本章操作其他数据源的方式和上一章介绍的操作json数据源的方式类似,比如text、csv等格式文件

(5) 操作 Hive表

spark table(tableName)

(6) 操作 mysql 数据库

mysql数据源可以参考官方网站的示例进行操作

四、列式数据库和行式数据库的存储原理

 

从存储原理的角度来看,行式数据库要查找某一类的数据比如b2必须从头开始遍历,所以时间需要5个单位,而对于列式数据库,如果要读取b2,只需要指定列族b,然后再指定列的名称b2,访问时间只要3个单位。

特别是查询一列数据,行式数据库需要访问所有的数据,列式数据库只需要查询特定的列,性能大规模提升。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值