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在校内发人人网状态(人人网看状态)
Feb 19 Python
python基础教程之元组操作使用详解
Mar 25 Python
python中numpy基础学习及进行数组和矢量计算
Feb 12 Python
基于python批量处理dat文件及科学计算方法详解
May 08 Python
Python基于Floyd算法求解最短路径距离问题实例详解
May 16 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
Jul 25 Python
对Python 除法负数取商的取整方式详解
Dec 12 Python
Python设计模式之抽象工厂模式原理与用法详解
Jan 15 Python
VSCode中自动为Python文件添加头部注释
Nov 14 Python
PyTorch学习:动态图和静态图的例子
Jan 06 Python
用Python远程登陆服务器的步骤
Apr 16 Python
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
Nov 11 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
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
PHP使用Alexa API获取网站的Alexa排名例子
2014/06/12 PHP
php中函数前加&amp;符号的作用分解
2014/07/08 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
2014/07/25 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
cakephp打印sql语句的方法
2015/02/13 PHP
php获取远程文件的内容和大小
2015/11/03 PHP
基于php数组中的索引数组和关联数组详解
2018/03/12 PHP
JavaScript异步编程:异步数据收集的具体方法
2013/08/19 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
2015/05/09 Javascript
js显示动态时间的方法详解
2016/08/20 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
2016/12/08 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
解析vue中的$mount
2017/12/21 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
Vue 中 filter 与 computed 的区别与用法解析
2019/11/21 Javascript
vue项目配置使用flow类型检查的步骤
2020/03/18 Javascript
微信小程序实现首页弹出广告
2020/12/03 Javascript
Python深入学习之闭包
2014/08/31 Python
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
2014/11/05 Python
python类继承与子类实例初始化用法分析
2015/04/17 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
python内存动态分配过程详解
2019/07/15 Python
Python使用matplotlib实现交换式图形显示功能示例
2019/09/06 Python
python进程间通信Queue工作过程详解
2019/11/01 Python
Python 制作查询商品历史价格的小工具
2020/10/20 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
解释一下钝化(Swap out)
2016/12/26 面试题
优良学风班申请材料
2014/02/13 职场文书
幼儿园教师自我鉴定
2014/03/20 职场文书
励志演讲稿500字
2014/08/21 职场文书
2014年教师党员自我评价范文
2014/09/22 职场文书
运动会广播稿50字
2015/08/19 职场文书
linux目录管理方法介绍
2022/06/01 Servers