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 12 Python
SVM基本概念及Python实现代码
Dec 27 Python
tensorflow实现softma识别MNIST
Mar 12 Python
python实现读取大文件并逐行写入另外一个文件
Apr 19 Python
python 实现登录网页的操作方法
May 11 Python
python使用minimax算法实现五子棋
Jul 29 Python
Pytorch之保存读取模型实例
Dec 30 Python
pytorch加载自定义网络权重的实现
Jan 07 Python
python圣诞树编写实例详解
Feb 13 Python
Python ORM框架Peewee用法详解
Apr 29 Python
Python虚拟环境的创建和使用详解
Sep 07 Python
详解Go语言运用广度优先搜索走迷宫
Jun 23 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的类 功能齐全的发送邮件类
2006/10/09 PHP
php中判断一个字符串包含另一个字符串的方法
2007/03/19 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
codeigniter中view通过循环显示数组数据的方法
2015/03/20 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
jquery imgareaselect 使用利用js与程序结合实现图片剪切
2009/07/30 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
javascript延时加载之defer测试
2012/12/28 Javascript
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
javascripit实现密码强度检测代码分享
2013/12/12 Javascript
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
JavaScript获取浏览器信息的方法
2015/11/20 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
2016/06/07 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
2016/06/13 Javascript
jQuery动态添加li标签并添加属性和绑定事件方法
2018/02/24 jQuery
解决antd datepicker 获取时间默认少8个小时的问题
2020/10/29 Javascript
Python实现控制台输入密码的方法
2015/05/29 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
Python爬取阿拉丁统计信息过程图解
2020/05/12 Python
苹果音乐订阅:Apple Music
2018/08/02 全球购物
Audible英国:有声读物,30天免费试用
2019/10/16 全球购物
澳大利亚最受欢迎的超级商场每日优惠:Catch
2020/11/17 全球购物
回门宴新郎答谢词
2014/01/12 职场文书
单位提档介绍信
2014/01/17 职场文书
西柏坡导游词
2015/02/05 职场文书
努力学习保证书
2015/02/26 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书