Spark3学习【基于Java】2. Spark-Sql核心概念

大数据47

从Spark2开始,Spark-SQL引入了SparkSession这个核心类,它是处理DataSet等结构数据的入口。在2.0之前,使用的是spark-core里的SparkContext。从前面的例子里也可以看到,程序一上来就要先创建SparkSession对象:

如果是在Spark-shell中,默认提供了它的一个对象叫spark。

spark-shell是给scala环境使用的一个命令行调试工具

SparkSession组合了2.0之前的几种上下文类,比如SQLContext和HiveContext,所以使用这些的地方原则上可以都用SparkSes来代替了。不过其他上下文类依然存在,就像RDD对于DataSet一样,它们依然功能完整操作细腻,比不过是Spark提供了新的API来封装、简化操作。

我们来看一下上面那条创建语句:最后的方法含义清晰,有就返回,没有就创建。master方法用来指明在集群环境下的master是谁。在Standalone 模式下传local或local[n],n是spark执行任务时的期望分片数。

Resilient Distributed Datasets (RDD) 译成弹性分布式数据集,是Spark中的核心概念。前面说过这个概念现在被Dataset和DataFrame代替了,但它依然存在。由于它的一些"缺点",导致Spark提供了更高级的API,但是在它之上构建的。

它是一组对象组成的不可变的分布式集合,里面的数据会被分成多个逻辑片在不同的节点上面计算。

[En]

It is an immutable distributed set of objects in which the data is divided into multiple logical slices and calculated on different nodes.

在遇到RDD的时候,现在我们通常会将其转化为Dataset和DataFrame,因为DataFrame更好用,它提供了和关系表一样的具名列,更重要的是计算性能也更好。

```
转化的方法也很简单,之前我们用到了:toDF()。

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长

相关文章
大数据

CentOS8.1安装Docker及Docker-compose

在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker. 设置仓库 安装所需的软件包 使用以下命令来设置稳定...
大数据

彻底理解协程

导读: 验证码作为网络安全的第一道屏障,其重要程度不言而喻。当前,卷积神经网络的高速发展使得许多验证码的安全性大大降低,一些新型验证码甚至选择牺牲可用性从而保证安全性。针对对抗样本技术的研究,给验证码...
大数据

Hive语法及其进阶(一)

导读: 验证码作为网络安全的第一道屏障,其重要程度不言而喻。当前,卷积神经网络的高速发展使得许多验证码的安全性大大降低,一些新型验证码甚至选择牺牲可用性从而保证安全性。针对对抗样本技术的研究,给验证码...
大数据

面试题个人汇总 – 微服务&分布式

1. 什么是服务雪崩?什么是服务限流? 服务雪崩 : 服务A调用服务B,服务B调用服务C,当大量请求突然请求服务A(服务A本身可以抗住这些请求),但是服务C存在请求堆积,从而会使服务B请求堆积,从而服...
大数据

什么是WordPress

首先,假设您没有WordPress的经验; 我将从基础开始。 在本教程中,我将回答问题:"什么是WordPress?" 在这篇文章中,我将说明您可以在哪里获得WordPress以及如何使用它。 我还将...
大数据

Kafka Eagle分布式模式

导读: 验证码作为网络安全的第一道屏障,其重要程度不言而喻。当前,卷积神经网络的高速发展使得许多验证码的安全性大大降低,一些新型验证码甚至选择牺牲可用性从而保证安全性。针对对抗样本技术的研究,给验证码...
大数据

kafka各个版本的特性

1. kafka-0.8.2 新特性 1.1 异步发送 producer不再区分同步(sync)和异步方式(async),所有的请求以异步方式发送,这样提升了客户端效率。producer请求会返回一个...
大数据

推荐一个最懂程序员的google插件

援助博主:若您觉得阅读本文对您有帮助,请点一下右边 按钮,我在此感谢!当然您也可以选择 ,可以很方便找到我! 本人原则:本人的博文内容出发点是笔记梳理和知识分享,但:还请不要进行大部分内容"原封不动"...
大数据

基于Docker的JMeter分布式压测

一个JMeter实例可能无法产生足够的负载来对你的应用程序进行压力测试。如本网站所示,一个JMeter实例将能够控制许多其他的远程JMeter实例,并对你的应用程序产生更大的负载。JMeter使用Ja...