spark sql加载parquet格式和json格式数据
来源:互联网 发布:国外网络支付平台 编辑:程序博客网 时间:2024/05/29 16:45
Parquet存储格式
1. 什么是Parquet数据格式?
Parquet是一种列式存储格式,可以被多种查询引擎支持(Hive、Impala、Drill等),并且它是语言和平台无关的。
2. Parquet文件下载后是否可以直接读取和修改呢?
Parquet文件是以二进制方式存储的,是不可以直接读取和修改的。Parquet文件是自解析的,文件中包括该文件的数据和元数据。
3. 列式存储和行式存储相比有哪些优势呢?
可以只读取需要的数据,降低IO数据量;
压缩编码可以降低磁盘存储空间。由于同一列的数据类型是一样的,可以使用更高效的压缩编码进一步节约存储空间。
参考链接:
http://blog.csdn.net/yu616568/article/details/51868447 讲解了parquet文件格式和orc文件格式
http://www.infoq.com/cn/articles/in-depth-analysis-of-parquet-column-storage-format 讲解了parquet列式存储
4. 导入parquet文件信息
首先需要有parquet文件,可以在github上下载,链接如下
https://github.com/apache/spark/blob/master/examples/src/main/resources/users.parquet。
parquet文件下载好以后,使用命令pyspark --total-executor-cores 4
打开spark的python环境,然后导入parquet文件。
如果parquet文件存在本地/opt
目录下,导入代码为:
parquetFile = spark.read.parquet("file:///opt/users.parquet")
如果parquet文件存在hdfs上,导入代码如下,其中master是hdfs集群上主机的ip,port指其端口号
parquetFile = spark.read.parquet("hdfs://master:port/user/mart_cis/zhousishuo/users.parquet")
5 读取parquet信息
创建视图
parquetFile.createOrReplaceTempView("parquetFile")
使用spark sql语句查询
users = spark.sql("select * from parquetFile")users.show()
结果如下:
JSON存储格式
json数据格式一般比较熟悉,如下图:
1. 导入json数据
如果json数据存在本地/opt
目录下,导入代码如下:
session = spark.read.json("file:///opt/people.json")
如果json数据存在hdfs上,导入代码如下:
session = spark.read.json("hdfs://master:8020/user/mart_cis/zhousishuo/people.json")
2.读取json数据
为上述session这个DataFrame注册一张表
session.registerTempTable("session")
使用spark sql语句查询
sessionDF = spark.sql("select * from session")sessionDF.show()
结果如下:
参考链接:
http://spark.apache.org/docs/latest/sql-programming-guide.html#json-datasets 关于spark sql导入数据讲的比较详细
- spark sql加载parquet格式和json格式数据
- Parquet数据存储格式
- orc格式和parquet格式对比
- Spark处理Json格式数据(Python)
- spark sql编程之实现合并Parquet格式的DataFrame的schema
- 4.Spark SQL:数据源Parquet之使用编程方式加载数据
- day64 Spark SQL下Parquet的数据切分和压缩内幕详解
- 网络加载数据和解析JSON格式数据案例之空气质量监测应用
- WebService 返回json格式和返回xml格式的数据
- 数据交换格式XML和JSON对比
- 数据传送格式之xml和json
- 数据交换格式XML和JSON对比
- 数据交换格式XML和JSON对比
- 数据交换格式XML和JSON对比
- Android 数据解析格式和JSON对象
- Android解析xml和json格式数据
- PB 生成和解析JSON格式数据
- Parquet_2. 在 Impala/Hive 中使用 Parquet 格式存储数据
- Java内部类、匿名类及this使用
- 【大数据部落】基于R的关联数据挖掘技术在煤矿隐患管理
- python数据格式化之pprint
- Spark伪分布式安装(一)
- Android 中的内存泄漏
- spark sql加载parquet格式和json格式数据
- 十大无人机品牌介绍
- 环境搭建
- background-clip使用
- ReactNative ScollView 组件
- POJ1716 Integer Intervals(区间选点)
- [sicily]1000. 函数求值
- Myeclipse如何自动创建hibernate以及配置struts2以及数据库表创建映射文件 详解
- Module build failed: TypeError: this._init is not a function