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 相关文章推荐
Python3搜索及替换文件中文本的方法
May 22 Python
Python简单实现Base64编码和解码的方法
Apr 29 Python
python使用fcntl模块实现程序加锁功能示例
Jun 23 Python
在python中使用正则表达式查找可嵌套字符串组
Oct 24 Python
深入理解Python分布式爬虫原理
Nov 23 Python
python/sympy求解矩阵方程的方法
Nov 08 Python
Python实现点阵字体读取与转换的方法
Jan 29 Python
Python脚本利用adb进行手机控制的方法
Jul 08 Python
Python安装与卸载流程详细步骤(图解)
Feb 20 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
May 15 Python
Python 实现微信自动回复的方法
Sep 11 Python
基于tensorflow权重文件的解读
May 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
php实现用已经过去多长时间的方式显示时间
2015/06/05 PHP
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
jquery二级导航内容均分的原理及实现
2013/08/13 Javascript
前台js调用后台方法示例
2013/12/02 Javascript
利用js(jquery)操作Cookie的方法说明
2013/12/19 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
2015/10/30 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
2016/07/15 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
微信小程序使用form表单获取输入框数据的实例代码
2018/05/17 Javascript
微信小程序自定义prompt组件步骤详解
2018/06/12 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
JavaScript实现多层颜色选项卡嵌套
2020/09/21 Javascript
如何手写一个简易的 Vuex
2020/10/10 Javascript
Python 字典dict使用介绍
2014/11/30 Python
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
python实现集中式的病毒扫描功能详解
2019/07/09 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
详解Python3 pickle模块用法
2019/09/16 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
2019/12/26 Python
如何理解Python中的变量
2020/06/01 Python
Python Django搭建网站流程图解
2020/06/13 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
澳大利亚新奇小玩意网站:Yellow Octopus
2017/12/28 全球购物
幼儿园小班植树节活动方案
2014/03/04 职场文书
指导教师评语
2014/04/26 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
golang 接口嵌套实现复用的操作
2021/04/29 Golang
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android