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 相关文章推荐
解析Mac OS下部署Pyhton的Django框架项目的过程
May 03 Python
python中json格式数据输出的简单实现方法
Oct 31 Python
浅谈Python类的__getitem__和__setitem__特殊方法
Dec 25 Python
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
Jun 15 Python
解决python3在anaconda下安装caffe失败的问题
Jun 15 Python
python分批定量读取文件内容,输出到不同文件中的方法
Dec 08 Python
Flask框架模板继承实现方法分析
Jul 31 Python
Django中自定义模型管理器(Manager)及方法
Sep 23 Python
关于pandas的离散化,面元划分详解
Nov 22 Python
Python类和实例的属性机制原理详解
Mar 21 Python
django中url映射规则和服务端响应顺序的实现
Apr 02 Python
为什么是 Python -m
Jun 19 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生成QRcode实例
2014/09/22 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
jquery移动listbox的值原理及代码
2013/05/03 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
nodejs调用cmd命令实现复制目录
2015/05/04 NodeJs
理解Javascript的动态语言特性
2015/06/17 Javascript
jquery实现倒计时效果
2015/12/14 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
2016/04/12 Javascript
小程序组件之仿微信通讯录的实现代码
2018/09/12 Javascript
详解vue更改头像功能实现
2019/04/28 Javascript
详解Vue的ref特性的使用
2020/01/24 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
[02:28]DOTA2英雄基础教程 灰烬之灵
2013/12/19 DOTA
Python 文件操作的详解及实例
2017/09/18 Python
pandas.DataFrame.to_json按行转json的方法
2018/06/05 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
python-Web-flask-视图内容和模板知识点西宁街
2019/08/23 Python
Python @property原理解析和用法实例
2020/02/11 Python
详解Python中的分支和循环结构
2020/02/11 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
html2canvas生成的图片偏移不完整的解决方法
2020/05/19 HTML / CSS
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
美国本地交易和折扣网站:LocalFlavor.com
2017/10/26 全球购物
个人简历的自荐信
2013/10/23 职场文书
京剧自荐信
2014/01/26 职场文书
电大会计学自我鉴定
2014/02/06 职场文书
汽修专业自荐信
2014/07/07 职场文书
财务经理岗位职责
2015/01/31 职场文书
离婚被告答辩状
2015/05/22 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
Python djanjo之csrf防跨站攻击实验过程
2021/05/14 Python