DataFrame是一个组织成命名列的数据集。它在概念上等同于关系数据库中的表或R/Python中的数据框架,但其经过了优化。DataFrames可以从各种各样的源构建,例如:结构化数据文件,Hive中的表,外部数据库或现有RDD。

DataFrame API 可以被Scala,Java,Python和R调用。

在Scala和Java中,DataFrame由Rows的数据集表示。

在Scala API中,DataFrame只是一个类型别名Dataset[Row]。而在Java API中,用户需要Dataset用来表示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之间的相互转换方法

本文地址: http://www.cppcns.com/jiaoben/python/229680.html

spark与python关系_spark: RDD与DataFrame之间的相互转换方法相关推荐

  1. python print rdd_spark: RDD与DataFrame之间的相互转换方法

    DataFrame是一个组织成命名列的数据集.它在概念上等同于关系数据库中的表或R/Python中的数据框架,但其经过了优化.DataFrames可以从各种各样的源构建,例如:结构化数据文件,Hive ...

  2. spark提交python程序_Spark任务提交(Spark Submit)

    Spark-Submit简介 spark-submit脚本用于在集群上启动应用程序,它位于Spark的bin目录中.这种启动方式可以通过统一的界面使用所有的Spark支持的集群管理功能,因此您不必为每 ...

  3. spark教程python案例_Spark实战(四)spark+python快速入门实战小例子(PySpark)

    由于目前很多spark程序资料都是用scala语言写的,但是现在需要用python来实现,于是在网上找了scala写的例子改为python实现 1.集群测试实例 代码如下: from pyspark. ...

  4. python iloc函数_Python pandas.DataFrame.iloc函数方法的使用

    DataFrame.iloc 纯粹基于整数位置的索引,用于按位置选择. .iloc[] 主要是基于整数位置(从轴的0到长度-1),但也可以与布尔数组一起使用. 允许的输入:整数, 例如, 5 整数的列 ...

  5. python describe函数_Python pandas.DataFrame.describe函数方法的使用

    DataFrame.describe(self, percentiles=None, include=None, exclude=None) 生成描述性统计数据,总结数据集分布的集中趋势,分散和形状, ...

  6. python agg函数_Python pandas.DataFrame.agg函数方法的使用

    DataFrame.agg(func, axis=0, *args, **kwargs) 使用指定axis上的一个或多个操作Aggregate. 参数:func: function, str, lis ...

  7. python convert函数_Python pandas.DataFrame.tz_convert函数方法的使用

    DataFrame.tz_convert(tz, axis=0, level=None, copy=True)[source] 将tz-aware axis转换为目标时区. 参数:tz:str或 tz ...

  8. python resample函数_Python pandas.DataFrame.resample函数方法的使用

    DataFrame.resample(rule, axis=0, closed=None, label=None, convention='start', kind=None, loffset=Non ...

  9. python mul函数_Python pandas.DataFrame.mul函数方法的使用

    DataFrame.mul(self, other, axis='columns', level=None, fill_value=None)DataFrame.multiply(self, othe ...

最新文章

  1. 在Xen虚拟机下修改或同步时间失败的解决方法
  2. 你算个什么鸟?AI十级“找茬”选手诞生
  3. [翻译] - Inside SQL Server 2000's Memory Management Facilities
  4. hdu 6106 Classes
  5. Windows上快速在指定目录打开cmd.exe命令行的方法
  6. Python 迁移学习实用指南 | iBooker·ApacheCN
  7. 一个简单的解决方法:word文档打不开,错误提示mso.dll模块错误。
  8. xmind使用教程思维导图
  9. php为什么发送不到sql,PHP-为什么我的Ajax无法执行我的SQL查询?
  10. Javascript:各种定位clientX、pageY、screenX、offsetY区别
  11. java面试题及答案2020 阿里(八)
  12. ZOOM视频会议总是很卡连接不上
  13. 白帽专访丨大家好,我是阿杨,一个全职挖洞选手。
  14. oracle 12988,ORA-12988: cannot drop column from table owned by SYS
  15. 数字签名和电子签名有什么不一样?
  16. 巴比特 | 元宇宙每日必读:数字藏品二级市场乱象丛生,00后成新韭菜,监管迫在眉睫?...
  17. Android USB tethering相关代码
  18. Java WebSocket 基础 建立端点
  19. PTA 帅到没朋友 (20分)
  20. [转] FileZilla Server超详细配置

热门文章

  1. NVIDIA TX2 设置开机自启动
  2. python分层聚类_使用Python分层聚类进行机器学习
  3. 学生党和SLAMer都可用的工具网站推荐
  4. html中锚链接作用和特点,HTMLa标签作为锚链接
  5. iphone开发之音频播放类AVAudioPlayer的使用——加纯代码案例
  6. matlab gauss pyramid,halcon的高斯金字塔gen_gauss_pyramid和单调算子monotony
  7. 业界最具影响力MySQL精品文章荟萃(300篇)
  8. 求两个相交的线性函数的交点的Python程序
  9. 英国Oracle电力,益和电力Oracle笔试题分享
  10. 如何解决win10系统安装MATLAB点击steup.exe闪退或没法安装?