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实现的快速排序算法详解
Aug 01 Python
Python字典数据对象拆分的简单实现方法
Dec 05 Python
python操作mysql代码总结
Jun 01 Python
python实现从pdf文件中提取文本,并自动翻译的方法
Nov 28 Python
详解Python静态网页爬取获取高清壁纸
Apr 23 Python
python os.fork() 循环输出方法
Aug 08 Python
python Pillow图像处理方法汇总
Oct 16 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
Apr 21 Python
python安装cx_Oracle和wxPython的方法
Sep 14 Python
Django数据库迁移常见使用方法
Nov 12 Python
python爬取豆瓣电影排行榜(requests)的示例代码
Feb 18 Python
Python中的turtle画箭头,矩形,五角星
Mar 16 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+mysql数据库查询实例
2015/01/21 PHP
Javascript写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)
2007/02/09 Javascript
最简单的jQuery程序 入门者学习
2009/07/09 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
CentOS环境中MySQL修改root密码方法
2018/01/07 Javascript
jQuery实现的简单图片轮播效果完整示例
2018/02/08 jQuery
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
解决vue.js this.$router.push无效的问题
2018/09/03 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
9种方法优化jQuery代码详解
2020/02/04 jQuery
JavaScript计算出两个数的差值
2020/03/19 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
深入理解Python中字典的键的使用
2015/08/19 Python
Python中defaultdict与lambda表达式用法实例小结
2018/04/09 Python
详解PyTorch批训练及优化器比较
2018/04/28 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
python Cartopy的基础使用详解
2020/11/01 Python
python3中布局背景颜色代码分析
2020/12/01 Python
非常漂亮的CSS3百叶窗焦点图动画
2016/02/24 HTML / CSS
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
UML设计模式笔试题
2014/06/07 面试题
绩效工资分配方案
2014/01/18 职场文书
班主任经验交流会主持词
2014/04/01 职场文书
竞选副班长演讲稿
2014/04/24 职场文书
社区党员志愿服务活动方案
2014/08/18 职场文书
护士2014年终工作总结
2014/11/11 职场文书
2014年稽查工作总结
2014/12/20 职场文书
迎新生欢迎词
2015/01/23 职场文书