Pyspark读取parquet数据过程解析


Posted in Python onMarch 27, 2020

parquet数据:列式存储结构,由Twitter和Cloudera合作开发,相比于行式存储,其特点是:

可以跳过不符合条件的数据,只读取需要的数据,降低IO数据量;压缩编码可以降低磁盘存储空间,使用更高效的压缩编码节约存储空间;只读取需要的列,支持向量运算,能够获取更好的扫描性能。

那么我们怎么在pyspark中读取和使用parquet数据呢?我以local模式,linux下的pycharm执行作说明。

首先,导入库文件和配置环境:

import os
from pyspark import SparkContext, SparkConf
from pyspark.sql.session import SparkSession

os.environ["PYSPARK_PYTHON"]="/usr/bin/python3" #多个python版本时需要指定

conf = SparkConf().setAppName('test_parquet')
sc = SparkContext('local', 'test', conf=conf)
spark = SparkSession(sc)

然后,使用spark进行读取,得到DataFrame格式的数据:host:port 属于主机和端口号

parquetFile = r"hdfs://host:port/Felix_test/test_data.parquet"
df = spark.read.parquet(parquetFile)

而,DataFrame格式数据有一些方法可以使用,例如:

1.df.first() :显示第一条数据,Row格式

print(df.first())

Pyspark读取parquet数据过程解析

2.df.columns:列名

3.df.count():数据量,数据条数

4.df.toPandas():从spark的DataFrame格式数据转到Pandas数据结构

5.df.show():直接显示表数据;其中df.show(n) 表示只显示前n行信息

6.type(df):显数据示格式

Pyspark读取parquet数据过程解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
pycharm 使用心得(七)一些实用功能介绍
Jun 06 Python
Python简单实现子网掩码转换的方法
Apr 13 Python
Python SqlAlchemy动态添加数据表字段实例解析
Feb 07 Python
pandas实现将dataframe满足某一条件的值选出
Jun 12 Python
浅谈PySpark SQL 相关知识介绍
Jun 14 Python
解决Django连接db遇到的问题
Aug 29 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
Jan 18 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
Apr 03 Python
Python configparser模块常用方法解析
May 22 Python
Python基础之元编程知识总结
May 23 Python
JAVA SpringMVC实现自定义拦截器
Mar 16 Python
Python selenium绕过webdriver监测执行javascript
Apr 12 Python
Python基于pyecharts实现关联图绘制
Mar 27 #Python
Python爬虫爬取杭州24时温度并展示操作示例
Mar 27 #Python
Django添加bootstrap框架时无法加载静态文件的解决方式
Mar 27 #Python
Python itertools.product方法代码实例
Mar 27 #Python
python实现图像全景拼接
Mar 27 #Python
如何在Python 游戏中模拟引力
Mar 27 #Python
Python 实现平台类游戏添加跳跃功能
Mar 27 #Python
You might like
PHP学习笔记之二 php入门知识
2011/01/12 PHP
PHP中strtotime函数使用方法分享
2012/01/10 PHP
php事务处理实例详解
2014/07/11 PHP
6个超实用的PHP代码片段
2015/08/10 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
鼠标事件延时切换插件
2011/03/12 Javascript
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
2012/01/13 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
常用的JavaScript WEB操作方法分享
2015/02/28 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
2016/12/07 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
python编写弹球游戏的实现代码
2018/03/12 Python
python3 pygame实现接小球游戏
2019/05/14 Python
python开头的coding设置方法
2019/08/08 Python
简单易懂Pytorch实战实例VGG深度网络
2019/08/27 Python
Python Django2.0集成Celery4.1教程
2019/11/19 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
python实现感知机模型的示例
2020/09/30 Python
OpenCV读取与写入图片的实现
2020/10/13 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
用HTML5制作烟火效果的教程
2015/05/12 HTML / CSS
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
如何进行有效的自我评价
2013/09/27 职场文书
函授大专自我鉴定
2013/11/01 职场文书
一个大学生十年的职业规划
2014/01/17 职场文书
纠纷协议书
2014/04/16 职场文书
2014年转正工作总结
2014/11/08 职场文书
美容院员工规章制度
2015/08/05 职场文书
《为人民服务》教学反思
2016/02/20 职场文书
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL