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的Django框架中自定义模版标签的示例
Jul 20 Python
python批量替换页眉页脚实例代码
Jan 22 Python
Python中defaultdict与lambda表达式用法实例小结
Apr 09 Python
Python实现读取机器硬件信息的方法示例
Jun 09 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 Python
对Python3 pyc 文件的使用详解
Feb 16 Python
python3人脸识别的两种方法
Apr 25 Python
python3.6 tkinter实现屏保小程序
Jul 30 Python
Python实现剪刀石头布小游戏(与电脑对战)
Dec 31 Python
python+tifffile之tiff文件读写方式
Jan 13 Python
Python读取配置文件(config.ini)以及写入配置文件
Apr 08 Python
Flask中jinja2的继承实现方法及实例
Mar 03 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后门URL的防范
2013/11/12 PHP
php目录拷贝实现方法
2015/07/10 PHP
php获取远程文件内容的函数
2015/11/02 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
jQuery生成asp.net服务器控件的代码
2010/02/04 Javascript
jQueryUI如何自定义组件实现代码
2010/11/14 Javascript
JS模板实现方法
2013/04/03 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
jQuery限制图片大小的方法
2016/05/25 Javascript
jQuery select自动选中功能实现方法分析
2016/11/28 Javascript
jQuery表格(Table)基本操作实例分析
2017/03/10 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
layer 关闭指定弹出层的例子
2019/09/25 Javascript
微信小程序实现页面浮动导航
2020/01/08 Javascript
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
Python实现一个服务器监听多个客户端请求
2018/04/12 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
python使用if语句实现一个猜拳游戏详解
2019/08/27 Python
Django-migrate报错问题解决方案
2020/04/21 Python
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
机工车间主任岗位职责
2014/03/05 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
事业单位财务人员岗位职责
2015/04/14 职场文书
销售开票员岗位职责
2015/04/15 职场文书
nginx基于域名,端口,不同IP的虚拟主机设置的实现
2021/03/31 Servers
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript
Redis 持久化 RDB 与 AOF的执行过程
2021/11/07 Redis
Hive常用日期格式转换语法
2022/06/25 数据库