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 contextlib模块使用示例
Feb 18 Python
python提取内容关键词的方法
Mar 16 Python
Python中集合的内建函数和内建方法学习教程
Aug 19 Python
深入学习Python中的装饰器使用
Jun 20 Python
python获取当前运行函数名称的方法实例代码
Apr 06 Python
python实现Windows电脑定时关机
Jun 20 Python
Python用5行代码写一个自定义简单二维码
Oct 21 Python
让Python脚本暂停执行的几种方法(小结)
Jul 11 Python
python+opencv像素的加减和加权操作的实现
Jul 14 Python
TFRecord格式存储数据与队列读取实例
Jan 21 Python
Django数据库操作之save与update的使用
Apr 01 Python
用python制作个视频下载器
Feb 01 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 查找字符串常用函数介绍
2012/06/07 PHP
PHP判断图片格式的七种方法小结
2013/06/03 PHP
PHP中new static()与new self()的区别异同分析
2014/08/22 PHP
讲解WordPress开发中一些常用的debug技巧
2015/12/18 PHP
PHP封装的简单连接MongoDB类示例
2019/02/13 PHP
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
网易JS面试题与Javascript词法作用域说明
2010/11/09 Javascript
extjs两个tbar问题探讨
2013/08/08 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
js简单抽奖代码
2015/01/16 Javascript
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
JavaScript之AOP编程实例
2015/07/17 Javascript
Angularjs 实现一个幻灯片示例代码
2016/09/08 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
JavaScript实现连连看连线算法
2019/01/05 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
2020/03/16 Javascript
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
python中单下划线_的常见用法总结
2018/07/10 Python
Python何时应该使用Lambda函数
2019/07/02 Python
python3 使用traceback定位异常实例
2020/03/09 Python
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
澳大利亚购买太阳镜和眼镜网站:Glamoureyes
2020/09/22 全球购物
什么是聚集索引和非聚集索引
2012/01/17 面试题
外贸学院会计专业应届生求职信
2013/11/14 职场文书
行政专员岗位职责
2014/01/02 职场文书
群众路线教师自我剖析材料
2014/09/29 职场文书
上课玩手机的检讨书
2014/10/01 职场文书
佛光寺导游词
2015/02/10 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python