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.2中的字符串函数学习总结
Apr 23 Python
利用Python获取赶集网招聘信息前篇
Apr 18 Python
详谈python read readline readlines的区别
Sep 22 Python
python实现远程通过网络邮件控制计算机重启或关机
Feb 22 Python
Python 利用pydub库操作音频文件的方法
Jan 09 Python
python的pytest框架之命令行参数详解(下)
Jun 27 Python
linux环境中没有网络怎么下载python
Jul 07 Python
详解PANDAS 数据合并与重塑(join/merge篇)
Jul 09 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
Jul 28 Python
Win10+GPU版Pytorch1.1安装的安装步骤
Sep 27 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
Feb 26 Python
Python3.8安装Pygame教程步骤详解
Aug 14 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
如何实现给定日期的若干天以后的日期
2006/10/09 PHP
php实现根据字符串生成对应数组的方法
2014/09/22 PHP
PHP实现正则表达式分组捕获操作示例
2018/02/03 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
jQuery 绑定事件到动态创建的元素上的方法实例
2013/08/18 Javascript
JS控制日期显示的小例子
2013/11/23 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
详解Javascript 装载和执行
2014/11/17 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
2016/10/27 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
Vue.js计算属性computed与watch(5)
2016/12/09 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
JS实现关键词高亮显示正则匹配
2018/06/22 Javascript
微信小程序 setData 对 data数据影响问题
2019/04/18 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
vue项目中js-cookie的使用存储token操作
2020/11/13 Javascript
[05:31]DOTA2英雄梦之声_第04期_光之守卫
2014/06/23 DOTA
Python多线程爬虫简单示例
2016/03/04 Python
如何安装并使用conda指令管理python环境
2019/07/10 Python
Pycharm安装并配置jupyter notebook的实现
2020/05/18 Python
python 利用opencv实现图像网络传输
2020/11/12 Python
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
留学推荐信写作指南
2014/01/25 职场文书
喜之郎果冻广告词
2014/03/20 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
文秘班元旦晚会活动策划方案
2014/08/28 职场文书
创先争优公开承诺书
2014/08/30 职场文书
大学生考试作弊检讨书1000字
2014/10/14 职场文书
感谢信的格式
2015/01/21 职场文书
matplotlib画混淆矩阵与正确率曲线的实例代码
2021/06/01 Python
MySQL 如何限制一张表的记录数
2021/09/14 MySQL