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之开始真正编程
Sep 12 Python
Python下使用Psyco模块优化运行速度
Apr 05 Python
Python随机生成均匀分布在单位圆内的点代码示例
Nov 13 Python
Python从零开始创建区块链
Mar 06 Python
python实现AES和RSA加解密的方法
Mar 28 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
May 05 Python
python 抓包保存为pcap文件并解析的实例
Jul 23 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
Aug 02 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
Feb 28 Python
Python 忽略文件名编码的方法
Aug 01 Python
Python 测试框架unittest和pytest的优劣
Sep 26 Python
完美解决Pycharm中matplotlib画图中文乱码问题
Jan 11 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
非常不错的MySQL优化的8条经验
2008/03/24 PHP
php5中date()得出的时间为什么不是当前时间的解决方法
2008/06/30 PHP
php生成随机数或者字符串的代码
2008/09/05 PHP
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
YII中assets的使用示例
2014/07/31 PHP
PHP实现的购物车类实例
2015/06/17 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
javaScript 读取和设置文档元素的样式属性
2009/04/14 Javascript
通过隐藏option实现select的联动效果
2009/11/10 Javascript
基于node.js的快速开发透明代理
2010/12/25 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
JavaScript制作简易的微信打飞机
2015/03/31 Javascript
jQuery在线选座位插件seat-charts特效代码分享
2015/08/27 Javascript
ReactNative-JS 调用原生方法实例代码
2016/10/08 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
从组件封装看Vue的作用域插槽的实现
2019/02/12 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
2020/05/03 Javascript
pyqt4教程之widget使用示例分享
2014/03/07 Python
Python遍历文件夹和读写文件的实现代码
2016/08/28 Python
浅谈python中的数字类型与处理工具
2017/08/02 Python
python和opencv实现抠图
2018/07/18 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
美国猫狗药物和用品网站:PetCareRx
2017/01/05 全球购物
中国一家专注拼团的社交购物网站:拼多多
2018/06/13 全球购物
门卫人员岗位职责
2013/12/24 职场文书
2014教师研修学习体会
2014/07/08 职场文书
音乐学专业求职信
2014/07/22 职场文书
董事长岗位职责
2015/02/13 职场文书
银行岗位培训心得体会
2016/01/09 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
笔记本自带的win11如何跳过联网激活?
2022/04/20 数码科技
SQL语句中EXISTS的详细用法大全
2022/06/25 MySQL