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 相关文章推荐
pygame学习笔记(4):声音控制
Apr 15 Python
python获取本机外网ip的方法
Apr 15 Python
python数组复制拷贝的实现方法
Jun 09 Python
详解duck typing鸭子类型程序设计与Python的实现示例
Jun 03 Python
python 网络编程常用代码段
Aug 28 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
Aug 05 Python
使用numpy和PIL进行简单的图像处理方法
Jul 02 Python
Python模块相关知识点小结
Mar 09 Python
Django中ORM找出内容不为空的数据实例
May 20 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
Feb 22 Python
python实现批量移动文件
Apr 05 Python
Python实现socket库网络通信套接字
Jun 04 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
php下过滤html代码的函数 提高程序安全性
2010/03/02 PHP
php伪静态验证码不显示的解决方案
2019/09/26 PHP
PHP保存Base64图片base64_decode的问题整理
2019/11/04 PHP
JavaScript 基础问答三
2008/12/03 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
jQuery中has()方法用法实例
2015/01/06 Javascript
jquery中animate的stop()方法作用实例分析
2015/01/30 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
JS表格组件神器bootstrap table使用指南详解
2017/04/12 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
2019/10/17 Javascript
Openlayers实现扩散的动态点(水纹效果)
2020/08/17 Javascript
python两种遍历字典(dict)的方法比较
2014/05/29 Python
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
python修改字典内key对应值的方法
2015/07/11 Python
浅谈python新手中常见的疑惑及解答
2016/06/14 Python
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
Python输出带颜色的字符串实例
2017/10/10 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
2018/04/26 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
2019/07/23 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
实例讲解利用HTML5 Canvas API操作图形旋转的方法
2016/03/22 HTML / CSS
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
美国高端寝具品牌:Coyuchi
2017/02/08 全球购物
给女朋友的道歉信
2014/01/10 职场文书
3的组成教学反思
2014/04/30 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
向国旗敬礼活动总结范文2014
2014/09/27 职场文书
西部计划志愿者工作总结
2015/08/11 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python
vue实现省市区联动 element-china-area-data插件
2022/04/22 Vue.js