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实现批量重命名文件的代码
May 25 Python
Python入门学习之字符串与比较运算符
Oct 12 Python
Pycharm远程调试openstack的方法
Nov 21 Python
深入理解Python 关于supper 的 用法和原理
Feb 28 Python
python 删除列表里所有空格项的方法总结
Apr 18 Python
Python3中详解fabfile的编写
Jun 24 Python
Python之list对应元素求和的方法
Jun 28 Python
Python3.5迭代器与生成器用法实例分析
Apr 30 Python
python3.7将代码打包成exe程序并添加图标的方法
Oct 11 Python
python实现随机加减法生成器
Feb 24 Python
Django实现随机图形验证码的示例
Oct 15 Python
能让Python提速超40倍的神器Cython详解
Jun 24 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 max_execution_time执行时间问题
2011/07/17 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
jQuery焦点图插件SaySlide
2015/12/21 Javascript
js下将金额数字每三位一逗号分隔
2016/02/19 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
基于jQuery的ajax方法封装
2016/07/14 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
常用jQuery选择器汇总
2017/02/02 Javascript
javascript 正则表达式分组、断言详解
2017/04/20 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
Angular4实现图片上传预览路径不安全的问题解决
2017/12/25 Javascript
Vue项目中使用Vux的安装过程
2018/05/01 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
13个最常用的Python深度学习库介绍
2017/10/28 Python
flask中过滤器的使用详解
2018/08/01 Python
详解python中Numpy的属性与创建矩阵
2018/09/10 Python
python利用dlib获取人脸的68个landmark
2019/11/27 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
Roots加拿大官网:加拿大休闲服饰品牌
2016/10/24 全球购物
德国网上超市:myTime.de
2019/08/26 全球购物
C语言变量的命名规则都有哪些
2013/12/27 面试题
24岁生日感言
2014/01/13 职场文书
实习鉴定评语
2014/01/19 职场文书
渡河少年教学反思
2014/02/12 职场文书
企业文化标语大全
2014/06/10 职场文书
2015共产党员公开承诺书
2015/01/22 职场文书
公司奖励通知
2015/04/21 职场文书
客户付款通知书
2015/04/23 职场文书
Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程
2021/11/11 Python