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 获取本机ip地址的两个方法
Feb 25 Python
gearman的安装启动及python API使用实例
Jul 08 Python
详谈python read readline readlines的区别
Sep 22 Python
python清除字符串中间空格的实例讲解
May 11 Python
使用PyInstaller将python转成可执行文件exe笔记
May 26 Python
python定时复制远程文件夹中所有文件
Apr 30 Python
Django 静态文件配置过程详解
Jul 23 Python
执行Django数据迁移时报 1091错误及解决方法
Oct 14 Python
浅谈Python3实现两个矩形的交并比(IoU)
Jan 18 Python
tensorflow求导和梯度计算实例
Jan 23 Python
keras 如何保存最佳的训练模型
May 25 Python
浅析Python模块之间的相互引用问题
Feb 26 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
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
input+select(multiple) 实现下拉框输入值
2009/05/21 Javascript
禁止你的左键复制实用技巧
2013/01/04 Javascript
js根据日期判断星座的示例代码
2014/01/23 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
做web开发 先学JavaScript
2014/12/12 Javascript
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
Vue 按键修饰符处理事件的方法
2018/05/04 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
2018/08/24 Javascript
vue slots 组件的组合/分发实例
2018/09/06 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
2019/10/24 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
python线程池的实现实例
2013/11/18 Python
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
python遍历序列enumerate函数浅析
2017/10/17 Python
TensorFlow变量管理详解
2018/03/10 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
超简单使用Python换脸实例
2019/03/27 Python
浅谈Python中range与Numpy中arange的比较
2020/03/11 Python
python如何随机生成高强度密码
2020/08/19 Python
小学毕业感言50字
2014/02/16 职场文书
银行职员自我鉴定
2014/04/20 职场文书
企业理念标语
2014/06/09 职场文书
综治维稳工作汇报
2014/10/27 职场文书
Idea连接MySQL数据库出现中文乱码的问题
2021/04/14 MySQL
一劳永逸彻底解决pip install慢的办法
2021/05/24 Python
Pytorch中的数据集划分&正则化方法
2021/05/27 Python
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang
JavaScript原型链详解
2021/11/07 Javascript
漫画「古见同学有交流障碍症」第25卷封面公开
2022/03/21 日漫