Pyspark获取并处理RDD数据代码实例


Posted in Python onMarch 27, 2020

弹性分布式数据集(RDD)是一组不可变的JVM对象的分布集,可以用于执行高速运算,它是Apache Spark的核心。

在pyspark中获取和处理RDD数据集的方法如下:

1. 首先是导入库和环境配置(本测试在linux的pycharm上完成)

import os
from pyspark import SparkContext, SparkConf
from pyspark.sql.session import SparkSession
os.environ["PYSPARK_PYTHON"]="/usr/bin/python3"
conf = SparkConf().setAppName('test_rdd')
sc = SparkContext('local', 'test', conf=conf)
spark = SparkSession(sc)

2. 然后,提供hdfs分区数据的路径或者分区表名

txt_File = r"hdfs://host:port/apps/hive/warehouse/数据库名.db/表名/分区名/part-m-00029.deflate" # part-m-00029.deflate
# txt_File = r"hdfs://host:port/apps/hive/warehouse/数据库名.db/表名" # hive table

3. sc.textFile进行读取,得到RDD格式数据<还可以用 spark.sparkContext.parallelize(data) 来获取RDD数据>,参数中还可设置数据被划分的分区数

txt_ = sc.textFile(txt_File)

4. 基本操作:

  • type(txt_):显示数据类型,这时属于 'pyspark.rdd.RDD'
  • txt_.first():获取第一条数据
  • txt_.take(2):获取前2条数据,形成长度为2的list
  • txt_.take(2)[1].split('\1')[1]:表示获取前两条中的第[1]条数据(也就是第2条,因为python的索引是从0开始的),并以 '\1'字符分隔开(这要看你的表用什么作为分隔符的),形成list,再获取该list的第2条数据
  • txt_.map(lambda x:x.split('\1')):使用lambda函数和map函数快速处理每一行数据,这里表示将每一行以 '\1'字符分隔开,每一行返回一个list;此时数据结构是:'pyspark.rdd.PipelinedRDD'
  • txt_.map(lambda x:(x, x.split('\1'))).filter(lambda y:y[0].startswith('北京')):表示在返回 (x, x.split('\1')) 后,进行筛选filter,获取其中以 '北京' 开头的行,并按照相同格式 (例如,这里是(x, x.split('\1'))格式,即原数据+分割后的列表数据) 返回数据
  • txt_.collect():返回所有RDD数据元素,当数据量很大时谨慎操作
  • txt_.toDF():不能直接转成DataFrame格式,需要设置Schema

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现计算最小编辑距离
Mar 17 Python
Python中的time模块与datetime模块用法总结
Jun 30 Python
django model去掉unique_together报错的解决方案
Oct 18 Python
Python简单实现Base64编码和解码的方法
Apr 29 Python
python PyTorch预训练示例
Feb 11 Python
Matplotlib 生成不同大小的subplots实例
May 25 Python
浅析Python pandas模块输出每行中间省略号问题
Jul 03 Python
Pyinstaller打包.py生成.exe的方法和报错总结
Apr 02 Python
PyTorch: 梯度下降及反向传播的实例详解
Aug 20 Python
解决Django migrate不能发现app.models的表问题
Aug 31 Python
Python Numpy库常见用法入门教程
Jan 16 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
Nov 02 Python
Python Django中的STATIC_URL 设置和使用方式
Mar 27 #Python
Python爬虫爬取、解析数据操作示例
Mar 27 #Python
python opencv进行图像拼接
Mar 27 #Python
Python爬虫爬取电影票房数据及图表展示操作示例
Mar 27 #Python
Pyspark读取parquet数据过程解析
Mar 27 #Python
Python基于pyecharts实现关联图绘制
Mar 27 #Python
Python爬虫爬取杭州24时温度并展示操作示例
Mar 27 #Python
You might like
其他功能
2006/10/09 PHP
php中变量及部分适用方法
2008/03/27 PHP
PHP Memcached应用实现代码
2010/02/08 PHP
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
一页面多XMLHttpRequest对象
2007/01/22 Javascript
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
2008/12/29 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
JavaScript的递归之递归与循环示例介绍
2013/08/05 Javascript
用jquery仿做发微博功能示例
2014/04/18 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
2015/03/17 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
2015/08/10 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
Javascript中arguments对象的详解与使用方法
2016/10/04 Javascript
利用Angularjs中模块ui-route管理状态的方法
2016/12/27 Javascript
详解angular element()方法使用
2017/04/08 Javascript
对Angular中单向数据流的深入理解
2018/03/31 Javascript
一文看懂如何简单实现节流函数和防抖函数
2019/09/05 Javascript
微信小程序个人中心的列表控件实现代码
2020/04/26 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
windows系统下Python环境搭建教程
2017/03/28 Python
Python读写及备份oracle数据库操作示例
2018/05/17 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
opencv-python 提取sift特征并匹配的实例
2019/12/09 Python
python实现单目标、多目标、多尺度、自定义特征的KCF跟踪算法(实例代码)
2020/01/08 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
2020/06/10 Python
Django限制API访问频率常用方法解析
2020/10/12 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
介绍下Java中==和equals的区别
2013/09/01 面试题
食品安全检查制度
2014/02/03 职场文书
《七颗钻石》教学反思
2014/02/28 职场文书
社区服务活动小结
2014/07/08 职场文书
2014副镇长民主生活会个人对照检查材料思想汇报
2014/09/30 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
银行自荐信范文
2015/03/25 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书