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 命令行也可以自动补全
Nov 30 Python
python统计文本字符串里单词出现频率的方法
May 26 Python
python实现拓扑排序的基本教程
Mar 11 Python
Python基于pycrypto实现的AES加密和解密算法示例
Apr 10 Python
python+numpy+matplotalib实现梯度下降法
Aug 31 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 Python
python socket 聊天室实例代码详解
Nov 14 Python
pycharm双击无响应(打不开问题解决办法)
Jan 10 Python
利用 Python ElementTree 生成 xml的实例
Mar 06 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
Jun 02 Python
Python检测端口IP字符串是否合法
Jun 05 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+MYSQL开发工具及资源收藏
2007/01/02 PHP
php Sql Server连接失败问题及解决办法
2009/08/07 PHP
PHP curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
php的XML文件解释类应用实例
2014/09/22 PHP
PHP计算近1年的所有月份
2017/03/13 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
php use和include区别总结
2019/10/13 PHP
PHP程序员必须知道的两种日志实例分析
2020/05/14 PHP
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
jQuery常见开发技巧详细整理
2013/01/02 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
js实现背景图自适应窗口大小
2017/01/10 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
JavaScript数组和对象的复制
2017/03/21 Javascript
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
用python 实现在不确定行数情况下多行输入方法
2019/01/28 Python
python调用c++传递数组的实例
2019/02/13 Python
利用python计算时间差(返回天数)
2019/09/07 Python
如何提高python 中for循环的效率
2020/04/15 Python
使用python采集Excel表中某一格数据
2020/05/14 Python
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
美国首屈一指的礼品篮供应商:GiftTree
2018/01/06 全球购物
美国汽车轮胎和轮毂销售网站:Tire Rack
2018/01/11 全球购物
课程设计心得体会
2013/12/28 职场文书
优秀辅导员事迹材料
2014/02/16 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
实习生矿工检讨书
2014/10/13 职场文书
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫