spark sql和spark core之间的关系

资料来源:https://www.bilibili.com/video/BV1Jq4y1z7VP?p=107
这几天一直在学spark模块之间的关系,但是一直不清楚dataframe、RDD、dataset这几种数据结构之间的关系,也不清楚要写代码的话从哪里找文档,后面接触了spark sql之后一下子就明白了。本来以为Spark SQL只是用来写sql语句的,但是后面发现其包含的范围非常之大

sparkSQL是spark的一个模块,用于**处理海量结构化数据**,说明spark

在这里插入图片描述
spark sql 的特点:
在这里插入图片描述
因为 spark sql是用来替代Hive的,所有SPark和Hive之间的区别也有很大
在这里插入图片描述
而最重要的数据抽象就是以下问题:spark core中的数据抽象为RDD,而spark sql中的为dataframe,一个为二维表结构化数据,一个无标准数据结构
在这里插入图片描述
另外在Spark sql中还有一个dataset数据抽象类型,这个和dataframe的区别在于dataset不能用于python语言中
在这里插入图片描述
sparkSession和SparkContext的区别:
以前只能用SparkContext访问RDD编程,但是2。0之后SparkSession就能同时作为RDD和SQL编程入口了,
在这里插入图片描述
sparkSession的创建

spark = SparkSession.builder.appName("test").master("local[*]").getOrCreate()
 通过sparkSession创建SparkContext:
		sc = spark.sparkContext
这说明直接Session更加通用。

dataframe支持的风格编程

DSL风格
在使用spark的时候,经常会看到使用sql语言和一种其他的风格编程,另一种风格是DSL风格,也就是dataframe的特有API,比如df.where().limit(),而DSL风格有很多种方法,和pandas中的dataframe比较像,这个需要自行学习
sql风格
sql风格就是将dataframe首先定义为一个临时的视图,就像是sql数据库中的几个数据库
,而dataframe转换为视图有多种方式

  1. 注册为临时表
	df.createTempView()
  1. 注册或者替换历史表
	df.createOrReplaceTemView()    #注册或者替换临时视图
  1. 注册为全局表,可以供其他的Context进行使用
	df.createOrReplaceTemView()    #注册或者替换临时视图
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值