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 相关文章推荐
python聊天程序实例代码分享
Nov 18 Python
Python中使用不同编码读写txt文件详解
May 28 Python
python检测是文件还是目录的方法
Jul 03 Python
深入理解NumPy简明教程---数组1
Dec 17 Python
浅析Python3爬虫登录模拟
Feb 07 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
Aug 30 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
Nov 14 Python
使用Python在Windows下获取USB PID&VID的方法
Jul 02 Python
python无序链表删除重复项的方法
Jan 17 Python
Python递归函数特点及原理解析
Mar 04 Python
Python虚拟环境库virtualenvwrapper安装及使用
Jun 17 Python
Python万能模板案例之matplotlib绘制甘特图
Apr 13 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 flush()与ob_flush()的区别详解
2013/06/03 PHP
编写php应用程序实现摘要式身份验证的方法详解
2013/06/08 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
JavaScript 指导方针
2007/04/05 Javascript
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
js如何实现设计模式中的模板方法
2013/07/23 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
2015/12/15 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
Node.js与Sails redis组件的使用教程
2017/02/14 Javascript
nodejs中全局变量的实例解析
2017/03/07 NodeJs
用POSTMAN发送JSON格式的POST请求示例
2018/09/04 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
使用layer.msg 时间设置不起作用的解决方法
2019/09/12 Javascript
JS实现点餐自动选择框(案例分析)
2019/12/10 Javascript
微信小程序保存图片到相册权限设置
2020/04/09 Javascript
vue cli4.0项目引入typescript的方法
2020/07/17 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
js实现带有动画的返回顶部
2020/08/09 Javascript
python使用webdriver爬取微信公众号
2018/08/31 Python
Django中提示消息messages的设置方式
2019/11/15 Python
Python中操作各种多媒体,视频、音频到图片的代码详解
2020/06/04 Python
python中pivot()函数基础知识点
2021/01/03 Python
python 实现Requests发送带cookies的请求
2021/02/08 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
解决margin 外边距合并问题
2019/07/03 HTML / CSS
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
庆祝儿童节标语
2014/10/09 职场文书
职工宿舍管理制度
2015/08/05 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书
JavaScript组合继承详解
2021/11/07 Javascript
Redis基本数据类型String常用操作命令
2022/06/01 Redis