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 相关文章推荐
使用httplib模块来制作Python下HTTP客户端的方法
Jun 19 Python
Python+Turtle动态绘制一棵树实例分享
Jan 16 Python
pandas把dataframe转成Series,改变列中值的类型方法
Apr 10 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
Jun 21 Python
python join方法使用详解
Jul 30 Python
python与mysql数据库交互的实现
Jan 06 Python
python json.dumps中文乱码问题解决
Apr 01 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
Apr 22 Python
Pandas缺失值2种处理方式代码实例
Jun 13 Python
Python之字典对象的几种创建方法
Sep 30 Python
matplotlib部件之套索Lasso的使用
Feb 24 Python
python​格式化字符串
Apr 20 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
PHP脚本数据库功能详解(下)
2006/10/09 PHP
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
dojo学习第二天 ajax异步请求之绑定列表
2011/08/29 Javascript
jquery $.each() 使用小探
2013/08/23 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
2016/08/23 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
2016/09/01 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
ES6解构赋值实例详解
2017/10/31 Javascript
解决vue 路由变化页面数据不刷新的问题
2018/03/13 Javascript
express默认日志组件morgan的方法
2018/04/05 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
详解小程序rich-text对富文本支持方案
2018/11/28 Javascript
JavaScript实现省市区三级联动
2020/02/13 Javascript
python 图片验证码代码分享
2012/07/04 Python
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
决策树剪枝算法的python实现方法详解
2019/09/18 Python
关于Python3 lambda函数的深入浅出
2019/11/27 Python
Python 实现顺序高斯消元法示例
2019/12/09 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
python实现发送邮件
2021/03/02 Python
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
main 函数执行以前,还会执行什么代码
2013/04/17 面试题
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
2013/01/26 面试题
工程总经理工作职责
2013/12/09 职场文书
2013年员工自我评价范文
2013/12/27 职场文书
马云的职业生涯规划之路
2014/01/01 职场文书
旅游项目开发策划书
2014/01/18 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
质量管理标语
2014/06/12 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
交警作风整顿剖析材料
2014/10/11 职场文书
茶花女读书笔记
2015/06/29 职场文书
学术会议开幕词
2016/03/03 职场文书
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL