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的urllib模块显示下载进度示例
Jan 17 Python
python 换位密码算法的实例详解
Jul 19 Python
python多线程socket编程之多客户端接入
Sep 12 Python
python之从文件读取数据到list的实例讲解
Apr 19 Python
好的Python培训机构应该具备哪些条件
May 23 Python
解决Python下imread,imwrite不支持中文的问题
Dec 05 Python
python通过ffmgep从视频中抽帧的方法
Dec 05 Python
超简单的Python HTTP服务
Jul 22 Python
python selenium 执行完毕关闭chromedriver进程示例
Nov 15 Python
Python ArgumentParse的subparser用法说明
Apr 20 Python
Python API 操作Hadoop hdfs详解
Jun 06 Python
公认8个效率最高的爬虫框架
Jul 28 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
如何使用脚本模仿登陆过程
2006/11/22 PHP
php 注释规范
2012/03/29 PHP
PHP编码转换
2012/11/05 PHP
使用php实现下载生成某链接快捷方式的解决方法
2013/05/07 PHP
php中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
php实现把数组按指定的个数分隔
2014/02/17 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
2014/10/29 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
Yii数据读取与跳转参数传递用法实例分析
2016/07/12 PHP
JavaScript 类型的包装对象(Typed Wrappers)
2011/10/27 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
jQuery中常用的遍历函数用法实例总结
2015/09/01 Javascript
jquery表单提交带错误信息提示效果
2017/03/09 Javascript
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
2018/03/13 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
基于Vue实现平滑过渡的拖拽排序功能
2019/06/12 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
Python中format()格式输出全解
2019/04/12 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
在pandas中遍历DataFrame行的实现方法
2019/10/23 Python
Python argparse模块应用实例解析
2019/11/15 Python
pytorch 批次遍历数据集打印数据的例子
2019/12/30 Python
Django 批量插入数据的实现方法
2020/01/12 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
html5 canvas fillRect坐标和大小的问题解决方法
2014/03/26 HTML / CSS
五好党支部事迹材料
2014/02/06 职场文书
《阳光》教学反思
2014/02/23 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
疾病证明书
2015/06/19 职场文书
2016个人廉洁自律承诺书
2016/03/25 职场文书
spring cloud 配置中心native配置方式
2021/09/25 Java/Android
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL