spark中dataframe解析_Spark-SQL

fe

ad3b39b0de0fd60631af21aa9465d9ad.png

f86e9c92a4ceb634ea573203d9ff6afa.png

4a1720a4b1df6e25ed70a2dbf79f896b.png

缺点

  • 不方便添加新的优化策略
  • 线程安全问题

edebe66be73b179c24277a2c667e5ff4.png

73a751ec024e4068a670f237bbae02a7.png

Spark SQL支持三种语言

  • java
  • Scala
  • python

DataFrame

  • 大规模数据化结构能历、提高了运算能力
  • 从sql到dataFrame的转化,支持sql查询
  • RDD是分布式的java对象的集合,对象颞部结构不可知
  • dataframe以rdd为基础的分布式数据集,提供了详细的结构信息

DataFrame的创建

SparkSession

2640cd94af508ab620e27bc10ea1f72c.png

97bdd6f3478ba317d33c057a3dd5a0f9.png

57e7638cd0b796cac7b831fa9170ff6c.png

dccd4d2a95f56fec79917a2fe6c4e2ef.png

e1c161e7415c412fb595ebcbda9b42ff.png

77cb546193b4b518f57b273b3d94ec2d.png

f2e0e0515dbae916c8fa83332edc8c17.png

dataframe的常用操作

df = spark.read.json("people.json")
df.printSchema()     查看表的结构
df select(df['name'],df['age']+1).show()df.filter(df['age']>20).show()
df.groupby("age").count().show()df.sort(df['age'] desc()).show()
df.sort(df['age'].desc(),df['name'].asc()).show()

利用反射机制推断RDD的模式

258c6ff0297ed31b4d1ce27ae3399114.png

9cf69d0b2940f6e8163e949e02831bbc.png

8380b1c5686bb4f7cb65d80db30d2f36.png

读取Mysql数据库中的数据

e0e238416ab8c081c75f01a0eb04af49.png

f9ee6017b33bda302b61f04c2f39b953.png

13d064e974dab050f208359efeaec594.png

95053aebabaaafa1f287234e6bf6e0f0.png

ed9184a3bb824954f58b03ddd59fe7de.png

1d50f25c09797feb930a8de633918e97.png

DataFrame的创建

from pyspark import SparkContext,SparkConf
from pyspark.sql import SparkSession
spark = SparkSession.builder.config(conf = SparkConf()).getOrCreate()# 分布式读取文件
spark.read.text("people.txt")  spark.read.format("text").load("people.txt")
spark.read.json("people.json")  spark.read.format("json").load("people.json")
spark.read.parquet("people/parquet")  spark.read.format("parquet").load("people.parquent")#文件保存  最后保到一个目录
df.write.txt("people.txt")
df.write.json("people.json")
df.write.parquent("people.parquent")# dataFrame的一些常用操作df.printSchema()
dat.select('_c1').show()
df.filter(df['age']>20).show()
df.groupby("age").count().show()
df.sort(df["age"].desc()).show()
df.sort(df["age"].desc(),df['name'].asc()).show()

RDD转换得到dataFrame

利用反射机制推断RDD模式

#用ROW对象去封装一行一行的数据
from pyspark.sql import ROW
people = spark.sparkContext.textFile("file:///file_path").map(lambda x:x.split(",")).map(lambda x:ROW(NAME= P[0],age = int(p[1])))schemaPeople = spark.createDataFrame(people)
#必须注册为临时表才供下面的查询使用
schemaPeople.createOrReplaceTempView("people")
personDF = spark.sql("select name,age from people where age>20")
personsDRR = personsDF.rdd.map(lambda p:"Nmae"+p.name+","+age:"+str()p.age))
personsRDD.foreach(print)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422726.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法设计与分析】01 算法涉及的研究内容概述

文章目录1 算法的研究内容2 算法设计的两个例子2.1 调度问题2.2 算法设计的步骤2.3 投资问题3 总结在学习算法涉及与分析的内容之前,先了解一下算法所涉及的几个大块的内容,方便以后学习。1 算法的研究内容 算法的研究内容主要包括三点: 计…

解题报告 百进制数

题目 4. 百进制数 (hex.pas/c/cpp) 【问题描述】 科学进步飞快,日新月异,人们早已经不再习惯十进制那种单调的表示数字的方式。最近,Y同学投入百进制数的研究中。两个百进制数可以相邻当且仅当前一个百进制数的最后一位…

python 遗传算法 agv_基于改进遗传算法的AGV路径规划

基于改进遗传算法的AGV路径规划苑光明,翟云飞,丁承君,张鹏【摘要】[摘要]针对AGV在自动化生产线中原有路径规划算法存在路径拐弯次数多,不利于AGV自动控制的问题,提出了一种改进遗传算法。为提高…

CSDN博客图片水印|自定义水印|去除水印

参考博文1:https://blog.csdn.net/stereohomology/article/details/54561782 参考博文2:https://blog.csdn.net/u011479200/article/details/81026798 CSDN改版后,原来的修改方法不行了~~ 在 CSDN 中,上传图片时,会默…

win2003 定时重启BAT

echo offat 2:00 /every:M,T,W,Th,F,S,Su %windir%\system32\shutdown.exe /recho 设置完成,请按任意键退出……pause>nul 运行后计划任务中会新增一个JOB 很简单的,记录一下免得忘记 转载于:https://www.cnblogs.com/relax/archive/2011/10/18/22160…

【算法设计与分析】02 货郎问题与计算复杂性理论

什么是NP系列问题?今天来看看这些问题。 文章目录1 货郎问题2 0-1背包问题3 什么是NP-hard问题(NP难问题)1 货郎问题 问题:有n个城市,已知任何两个城市之间的距离,求一条每个城市恰好经过1次的回路&#xf…

ad17编辑界面怎么检查未连线_软件账务处理流程之——凭证审核与检查

金蝶是我们财务人非常熟悉的财务软件,但是我们很多财务人只在应用软件的时候还是会出现很多的问题,为了帮助大家更好地应用这个软件,今天就来和大家讲讲关于金蝶软件凭证审核与检查的一些基本处理流程。凭证审核凭证输入完成后,更…

快速可扩展的Ajax流代理——提供持续下载跨域数据

简介 由于浏览器禁止跨域的XMLHTTP调用,所有的Ajax网站都必须有一个服务端代理来从外部域比如Flickr或者Digg来抓去内容。对客户端Javascript代码来说,一个XMLHttp的调用将请求传递给宿主在相同域里的服务端代理,然后由代理来从外部服务器上下…

Markdown编辑器 公式指导手册

#Cmd Markdown 公式指导手册 标签: Tutorial 2018-03-20 补档: 收到很多小伙伴对本文的源文档转载需求,故传了一份 md 文件,请按需 下载 。 本文固定链接: https://www.zybuluo.com/codeep/note/163962 点击跳转至 Cmd Markdown …

python建db文件_临时数据库之python用sqlite3模块操作sqlite

SQLite是一个包含在C库中的轻量级数据库。它并不需要独立的维护进程,并且允许使用非标准变体(nonstandard variant)的SQL查询语句来访问数据库。一些应用可是使用SQLite保存内部数据。它也可以在构建应用原型的时候使用,以便于以后转移到更大型的数据库。…

MDX as的使用

用到as的时候,如果用到了某个纬度,例如:withmember mydate as now()member [告警投诉数量a] as lookupcube("[ALARM_RECORD]","[Measures].[告警投诉数量]") member [故障总量啊] as lookupcube("[EOMS_FAULT_RECO…

【算法设计与分析】03 算法及其时间复杂度

在学习算法的时间复杂度之前,需要了解下面5条概念 什么是算法的时间复杂度? 针对指定基本运算,计数算法所做的运算次数。什么是基本运算?比较、加法、乘法、置指针、交换…什么是输入规模?输入串的编码长度&#xff0c…

用单片机测量流体流速的_影响超声波流量计(热量表)测量精度的主要因素

1、上下游直管段的影响由于时差式超声波流量计标定系数K值是雷诺数函数,所以当流体从层流过渡到紊流时,其流速分布不均匀,标定系数K值将产生较大的变化,从而影响测量准确度。根据设计要求换能器应安装在上游直管段为10倍管径、下游…

【算法设计与分析】04 函数的渐进的界

今天学习函数的渐进的界,会涉及多种数学符号。对以后学习分析算法复杂度有很大的帮助。 1 大OOO符号 定义: 设 f 和 g是定义域为自然数集N上的函数. 若存在正数 c 和 n0, 使得 对一切 n ≥\geq≥ n0有: c≤f(n)≤cg(n)c\leq f(n) \leq cg(n…

11月10日 14:00~16:00 上海敏捷开发沙龙

主题:火星人陈勇将赴上海主办线下沙龙,主题是“自组织团队与松结对编程”(2011 微软 TechED演讲主题),演讲后有团队问答PK活动。日期:2011年11月10日时间:下午14:00~16&a…

c语言头文件和源文件_C语言头文件防卫式声明

C语言一般提供三种预处理功能:宏处理、文件包含、条件编译。头文件防卫式申明中会用到条件编译中 #ifndef、#define、#endif 的用法。所以,首先价绍下条件编译。1 条件编译一般情况下,在生成可执行文件的过程中,源程序文件中的所有…

tomcat原理,一个客户端请求的处理过程

假设来自客户的请求为:http://localhost:8080/wsota/wsota_index.jsp1) 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得2) Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应3) Engine获得…

python定义函数需要保留字def_定义函数时要用到哪一个python保留字?_学小易找答案...

【简答题】常见的足部畸形有哪些?例举6种以上。【其它】请将会计学小册子第四章完成情况(选择判断业务题2. 6.)的所有内容拍照上传嗷【其它】以小组为单位进行现场调研,对足球场外的广场区域植物造景进行统计,每个同学利用CAD软件对该场地进行绘图,掌握园林中自然式绿地的植物…