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中截取字符函数strip,lstrip,rstrip
Jul 17 Python
python将txt文档每行内容循环插入数据库的方法
Dec 28 Python
python读取txt文件并取其某一列数据的示例
Feb 19 Python
Python实现的旋转数组功能算法示例
Feb 23 Python
python笔记_将循环内容在一行输出的方法
Aug 08 Python
django 取消csrf限制的实例
Mar 13 Python
python3将变量输入的简单实例
Aug 19 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
Sep 24 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
Nov 11 Python
基于django和dropzone.js实现上传文件
Nov 24 Python
用Python自动清理系统垃圾的实现
Jan 18 Python
python 基于opencv去除图片阴影
Jan 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
escape unescape的php下的实现方法
2007/04/27 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
PHP连接数据库实现注册页面的增删改查操作
2016/03/27 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
2020/09/13 PHP
发现的以前不知道的函数
2006/09/19 Javascript
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
JS &amp; JQuery 动态添加 select option
2016/06/08 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
基于Vue实例对象的数据选项
2017/08/09 Javascript
vue在使用ECharts时的异步更新和数据加载详解
2017/11/22 Javascript
关于JavaScript中高阶函数的魅力详解
2018/09/07 Javascript
Jquery实现无缝向上循环滚动列表的特效
2019/02/13 jQuery
微信小程序-form表单提交代码实例
2019/04/29 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
微信小程序实现多图上传
2020/06/19 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
2020/07/20 Javascript
Python中字典和集合学习小结
2017/07/07 Python
Python IDLE入门简介
2017/12/08 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
Django组件之cookie与session的使用方法
2019/01/10 Python
利用pyuic5将ui文件转换为py文件的方法
2019/06/19 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
python中的django是做什么的
2020/07/31 Python
Restful_framework视图组件代码实例解析
2020/11/17 Python
印度最大的旅游网站:MakeMyTrip
2016/10/05 全球购物
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
文科生自我鉴定
2014/02/15 职场文书
2014三八妇女节活动总结范文四篇
2014/03/09 职场文书
地方白酒代理协议书
2014/10/25 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
公司员工宿舍管理制度
2015/08/03 职场文书
小学班主任教育随笔
2015/08/15 职场文书
国产动画《万圣街》日语配音版制作决定!
2022/03/20 国漫