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程序语言快速上手教程
Jul 18 Python
pyqt4教程之实现windows窗口小示例分享
Mar 07 Python
Python编程中time模块的一些关键用法解析
Jan 19 Python
PYTHON压平嵌套列表的简单实现
Jun 08 Python
python 中random模块的常用方法总结
Jul 08 Python
python中实现精确的浮点数运算详解
Nov 02 Python
详解基于django实现的webssh简单例子
Jul 17 Python
python使用suds调用webservice接口的方法
Jan 03 Python
Python运行DLL文件的方法
Jan 17 Python
pip install 使用国内镜像的方法示例
Apr 03 Python
Python如何急速下载第三方库详解
Nov 02 Python
Python实现灰色关联分析与结果可视化的详细代码
Mar 25 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
相对路径转化成绝对路径
2007/04/10 PHP
PHP 文件上传功能实现代码
2009/06/24 PHP
php 保留字列表
2012/10/04 PHP
php json转换成数组形式代码分享
2014/11/10 PHP
php获取远程图片并下载保存到本地的方法分析
2016/10/08 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
PHP实现的服务器一致性hash分布算法示例
2018/08/09 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
Bootstrap按钮组件详解
2016/04/26 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
2016/11/26 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
vue双向绑定及观察者模式详解
2019/03/19 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
2019/09/28 Javascript
vue 清空input标签 中file的值操作
2020/07/21 Javascript
vue 数据操作相关总结
2020/12/17 Vue.js
[03:00]《DAC最前线》之欧美新秀VS老将
2015/02/01 DOTA
[01:27:30]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python清除字符串里非数字字符的方法
2015/07/02 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
Django使用Celery异步任务队列的使用
2018/03/13 Python
python将控制台输出保存至文件的方法
2019/01/07 Python
python爬虫scrapy基本使用超详细教程
2021/02/20 Python
违反校纪校规检讨书
2014/02/15 职场文书
年度评优评先方案
2014/06/03 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
经理岗位职责
2015/02/02 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书