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 相关文章推荐
Python3读取zip文件信息的方法
May 22 Python
Python使用QQ邮箱发送Email的方法实例
Feb 09 Python
Python爬虫天气预报实例详解(小白入门)
Jan 24 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
Dec 14 Python
python3.6根据m3u8下载mp4视频
Jun 17 Python
python二进制文件的转译详解
Jul 03 Python
Python Pandas实现数据分组求平均值并填充nan的示例
Jul 04 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
Dec 12 Python
推荐8款常用的Python GUI图形界面开发框架
Feb 23 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
Apr 12 Python
django 将自带的数据库sqlite3改成mysql实例
Jul 09 Python
详解Python中*args和**kwargs的使用
Apr 07 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获取MSN好友列表类的实现代码
2013/06/23 PHP
一组PHP加密解密函数分享
2014/06/05 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
2014/12/24 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
基于jQuery的试卷自动排版系统实现代码
2011/01/06 Javascript
中文路径导致unitpngfix.js不正常的解决方法
2013/06/26 Javascript
jQuery制作仿Mac Lion OS滚动条效果
2015/02/10 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
JS使用onerror捕获异常示例
2016/08/03 Javascript
原生js获取元素样式的简单方法
2016/08/06 Javascript
jQuery实现表格隔行及滑动,点击时变色的方法【测试可用】
2016/08/20 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
2017/01/21 Javascript
vue实现简单表格组件实例详解
2017/04/16 Javascript
JS switch判断 三目运算 while 及 属性操作代码
2017/09/03 Javascript
解决webpack+Vue引入iView找不到字体文件的问题
2018/09/28 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
ant design vue中表格指定格式渲染方式
2020/10/28 Javascript
springboot+vue实现文件上传下载
2020/11/17 Vue.js
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
python 字典(dict)遍历的四种方法性能测试报告
2014/06/25 Python
Python中的一些陷阱与技巧小结
2015/07/10 Python
替换python字典中的key值方法
2018/07/06 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
python_mask_array的用法
2020/02/18 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
Xadmin+rules实现多选行权限方式(级联效果)
2020/04/07 Python
pandas数据拼接的实现示例
2020/04/16 Python
雅诗兰黛美国官网:Estee Lauder美国
2016/07/21 全球购物
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
Penhaligon’s英国官网:成立于1870年的英国香水制造商
2021/02/18 全球购物
工作中的自我评价如何写好
2013/10/28 职场文书
中介公司区域经理岗位职责范本
2014/03/02 职场文书
应急管理培训方案
2014/06/12 职场文书