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 爬虫爬取指定博客的所有文章
Feb 17 Python
Python编程判断这天是这一年第几天的方法示例
Apr 18 Python
Flask web开发处理POST请求实现(登录案例)
Jul 26 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
Dec 19 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
May 08 Python
Python面向对象之类的封装操作示例
Jun 08 Python
pywinauto自动化操作记事本
Aug 26 Python
Python进程的通信Queue、Pipe实例分析
Mar 30 Python
Python变量格式化输出实现原理解析
Aug 06 Python
Python爬取网页信息的示例
Sep 24 Python
python多线程方法详解
Jan 18 Python
python单向链表实例详解
May 25 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
phpMyAdmin自动登录和取消自动登录的配置方法
2014/05/12 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
2015/04/20 PHP
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
PHP排序二叉树基本功能实现方法示例
2018/05/26 PHP
繁简字转换功能
2006/07/19 Javascript
jquery 将disabled的元素置为enabled的三种方法
2009/07/25 Javascript
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
2014/11/20 NodeJs
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
2017/03/30 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
2017/06/18 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
npm scripts 使用指南详解
2018/10/08 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
JavaScript如何判断对象有某属性
2020/07/03 Javascript
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
linux安装Python3.4.2的操作方法
2018/09/28 Python
Flask-WTF表单的使用方法
2019/07/12 Python
flask框架jinja2模板与模板继承实例分析
2019/08/01 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
世界上最大的折扣香水店:FragranceNet.com
2016/10/26 全球购物
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
精伦电子Java笔试题
2013/01/16 面试题
教师产假请假条
2014/04/10 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server