spark: RDD与DataFrame之间的相互转换方法


Posted in Python onJune 07, 2018

DataFrame是一个组织成命名列的数据集。它在概念上等同于关系数据库中的表或R/Python中的数据框架,但其经过了优化。DataFrames可以从各种各样的源构建,例如:结构化数据文件,Hive中的表,外部数据库或现有RDD。

DataFrame API 可以被Scala,Java,Python和R调用。

在Scala和Java中,DataFrame由Rows的数据集表示。

在Scala API中,DataFrame只是一个类型别名Dataset[Row]。而在Java API中,用户需要Dataset<Row>用来表示DataFrame。

在本文档中,我们经常将Scala/Java数据集Row称为DataFrames。

那么DataFrame和spark核心数据结构RDD之间怎么进行转换呢?

代码如下:

# -*- coding: utf-8 -*-
from __future__ import print_function
from pyspark.sql import SparkSession
from pyspark.sql import Row

if __name__ == "__main__":
 # 初始化SparkSession
 spark = SparkSession \
 .builder \
 .appName("RDD_and_DataFrame") \
 .config("spark.some.config.option", "some-value") \
 .getOrCreate()

 sc = spark.sparkContext

 lines = sc.textFile("employee.txt")
 parts = lines.map(lambda l: l.split(","))
 employee = parts.map(lambda p: Row(name=p[0], salary=int(p[1])))

 #RDD转换成DataFrame
 employee_temp = spark.createDataFrame(employee)

 #显示DataFrame数据
 employee_temp.show()

 #创建视图
 employee_temp.createOrReplaceTempView("employee")
 #过滤数据
 employee_result = spark.sql("SELECT name,salary FROM employee WHERE salary >= 14000 AND salary <= 20000")

 # DataFrame转换成RDD
 result = employee_result.rdd.map(lambda p: "name: " + p.name + " salary: " + str(p.salary)).collect()

 #打印RDD数据
 for n in result:
 print(n)

spark: RDD与DataFrame之间的相互转换方法

以上这篇spark: RDD与DataFrame之间的相互转换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python贪吃蛇游戏编写代码
Oct 26 Python
python Pygame的具体使用讲解
Nov 03 Python
python基于物品协同过滤算法实现代码
May 31 Python
python中logging模块的一些简单用法的使用
Feb 22 Python
numpy创建单位矩阵和对角矩阵的实例
Nov 29 Python
django数据模型(Model)的字段类型解析
Dec 25 Python
python3 循环读取excel文件并写入json操作
Jul 14 Python
区分python中的进程与线程
Aug 13 Python
python 实现弹球游戏的示例代码
Nov 17 Python
python 实现学生信息管理系统的示例
Nov 28 Python
pycharm 实现调试窗口恢复
Feb 05 Python
python基础学习之递归函数知识总结
May 26 Python
Python简单实现网页内容抓取功能示例
Jun 07 #Python
pyspark 读取csv文件创建DataFrame的两种方法
Jun 07 #Python
redis之django-redis的简单缓存使用
Jun 07 #Python
PHP实现发送和接收JSON请求
Jun 07 #Python
使用python画个小猪佩奇的示例代码
Jun 06 #Python
python re模块的高级用法详解
Jun 06 #Python
Python实现的爬取网易动态评论操作示例
Jun 06 #Python
You might like
phpBB BBcode处理的漏洞
2006/10/09 PHP
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
JS实现模仿微博发布效果实例代码
2013/12/16 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
2015/10/28 Javascript
判断输入的字符串是否是日期格式的简单方法
2016/07/11 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
vue.js声明式渲染和条件与循环基础知识
2017/07/31 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
在Python下利用OpenCV来旋转图像的教程
2015/04/16 Python
PyCharm 常用快捷键和设置方法
2017/12/20 Python
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
详解Python_shutil模块
2019/03/15 Python
python实现控制COM口的示例
2019/07/03 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
2019/08/22 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
浅析CSS3 中的 transition,transform,translate之间区别和作用
2020/03/26 HTML / CSS
美国休闲服装品牌:J.Crew Factory
2017/03/04 全球购物
二年级小学生评语
2014/04/21 职场文书
初中学校对照检查材料
2014/08/19 职场文书
家长对学校的意见和建议
2015/06/03 职场文书
2016党校学习心得体会
2016/01/07 职场文书
Java数据结构之堆(优先队列)
2022/05/20 Java/Android
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers
Win11如何查看显卡型号 Win11查看显卡型号的方法
2022/08/14 数码科技