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语言编写电脑时间自动同步小工具
Mar 08 Python
Python3中的2to3转换工具使用示例
Jun 12 Python
Python 的类、继承和多态详解
Jul 16 Python
Windows下Anaconda的安装和简单使用方法
Jan 04 Python
深入了解Python中pop和remove的使用方法
Jan 09 Python
pandas.DataFrame 根据条件新建列并赋值的方法
Apr 08 Python
详解关于Django中ORM数据库迁移的配置
Oct 08 Python
Python XML转Json之XML2Dict的使用方法
Jan 15 Python
Tensorflow--取tensorf指定列的操作方式
Jun 30 Python
Python实现壁纸下载与轮换
Oct 19 Python
python3中celery异步框架简单使用+守护进程方式启动
Jan 20 Python
Python 第三方库 openpyxl 的安装过程
Dec 24 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
MySQL数据源表结构图示
2008/06/05 PHP
基于JQuery实现的类似购物商城的购物车
2011/12/06 Javascript
js控制frameSet示例
2013/09/10 Javascript
Javascript改变CSS样式(局部和全局)
2013/12/18 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
js函数调用的方式
2014/05/06 Javascript
js Calender控件使用详解
2015/01/05 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
2017/07/03 Javascript
详解vue 2.6 中 slot 的新用法
2019/07/09 Javascript
layui 实现加载动画以及非真实加载进度的方法
2019/09/23 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
利用Python为iOS10生成图标和截屏
2016/09/24 Python
Python 获取指定文件夹下的目录和文件的实现
2019/08/30 Python
Python龙贝格法求积分实例
2020/02/29 Python
如何基于python实现不邻接植花
2020/05/01 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
python3中for循环踩过的坑记录
2020/12/14 Python
交通法规咨询中心工作职责
2013/11/27 职场文书
大型活动策划方案
2014/01/12 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
中学生纪念九一八事变演讲稿
2014/09/14 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
白酒代理协议书范本
2014/10/26 职场文书
教代会开幕词
2015/01/28 职场文书
美德少年主要事迹材料
2015/11/04 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书
创业计划书之养殖业
2019/10/11 职场文书
MySQL 存储过程的优缺点分析
2021/05/20 MySQL
Python的三个重要函数详解
2022/01/18 Python
golang使用map实现去除重复数组
2022/04/14 Golang
python如何为list实现find方法
2022/05/30 Python