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正则实现计算器功能
Dec 14 Python
Python实现一个Git日志统计分析的小工具
Dec 14 Python
Python自定义函数定义,参数,调用代码解析
Dec 27 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
Feb 08 Python
Python模块、包(Package)概念与用法分析
May 31 Python
Python实用工具FuckIt.py介绍
Jul 02 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
Aug 13 Python
springboot配置文件抽离 git管理统 配置中心详解
Sep 02 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
Feb 25 Python
python判断两个序列的成员是否一样的实例代码
Mar 01 Python
Python urlencode和unquote函数使用实例解析
Mar 31 Python
完美解决pycharm 不显示代码提示问题
Jun 02 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 分页分组类
2009/12/10 PHP
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
php 生成唯一id的几种解决方法
2013/03/08 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
jquery 表单进行客户端验证demo
2009/08/24 Javascript
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
JavaScript高级程序设计 扩展--关于动态原型
2010/11/09 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
2014/12/20 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
Node.js操作Firebird数据库教程
2016/03/04 Javascript
jQuery绑定事件-多种实现方式总结
2016/05/09 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
2017/01/11 Javascript
vue+springboot前后端分离实现单点登录跨域问题解决方法
2018/01/30 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
微信小程序配置服务器提示验证token失败的解决方法
2019/04/03 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
[56:56]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
Django--权限Permissions的例子
2019/08/28 Python
解决python执行较大excel文件openpyxl慢问题
2020/05/15 Python
python urllib和urllib3知识点总结
2021/02/08 Python
使用SVG实现提示框功能的示例代码
2020/06/05 HTML / CSS
高中毕业生自我鉴定范文
2013/09/26 职场文书
运动会四百米广播稿
2014/01/19 职场文书
高中生职业规划范文
2014/03/09 职场文书
2015年酒店客房部工作总结
2015/04/25 职场文书
2015年人力资源部工作总结
2015/04/30 职场文书
初中地理教学反思
2016/02/19 职场文书
Python re.sub 反向引用的实现
2021/07/07 Python
Navicat Premium自定义 sql 标签的创建方式
2022/09/23 数据库