IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> spark复习资料 -> 正文阅读

[大数据]spark复习资料

@[TOC](SPARK试题汇总)

# 选择题
Scala中定义常量使用关键字 ? ? ? ? ?
A. val
B. var
C. object
D. final
for(i<-1 to 4;j<-0 to 3 if(i\==j)) print(j)的输出是?
A. 1234
B. 0123
C. 234
D. 123
scala中val x,y=100意味着?
A. x没有赋值,y是100
B. x是0,y是100
C. x,y都是100
D. 以上说法都不对
Scala中定义变量使用关键字 ? ? ? ? ?
A. val
B. object
C. var
D. final
for(i<-1 to 4;j<-0 to 3 if(i+j==5)) print(j)的输出是?
A. 432
B. 321
C. 234
D. 123
scala中val sum=0;for(i<-1 to 100) sum=sum+i; sum的结果是?
A. 4950
B. 5050
C. 程序报错
D. 以上说法都不对
spark是hadoop生态下哪个组件的替代方案?
A. Hadoop
B. Yarn
C. HDFS
D. MapReduce
以下存储级别不能解决内存不足造成溢出的是?
A. DISK_ONLY
B. MEMORY_ONLY_SER
C. MEMORY_AND_DISK
D. MEMORY_AND_DISK_SER
RDD转化为DataFrame使用的方法是?
A. collect()
B. take()
C. addSchema()
D. toDF()
下面哪个是spark比MapReduce计算快的最主要原因?
A. 基于分布式计算的框架
B. 基于DAG的调度框架
C. 基于内存的计算
D. 基于Lineage的容错机制
下面哪个操作是窄依赖?
A. join
B. filter
C. group
D. sort
下面哪个操作肯定是宽依赖?
A. flatMap
B. map
C. sample
D. reduceByKey
下面不是Spark的核心组件的是 ? ? ? ? ? 。?
A. GraphX
B. Spark Core
C. Spark SQL
D. Spark Shell
关于累加器,下面哪个是错误的?
A. 支持加法
B. 支持数值类型
C. 可并行
D. 不支持自定义类型
Stage 的 Task 的数量由什么决定?
A. Partition
B. Job
C. Stage
D. TaskScheduler
下面哪个不是 Spark SQL的主要特点?
A. 将SQL查询与Spark应用程序无缝结合
B. 以相同方式连接多种数据源
C. 在现有的数据仓库上运行SQL
D. 基于内存运算快
下面程序的运行结果是?

```
object test{
def main(args:Array[String]){
print(multiInt()+multiInt(0)+multiInt(b=0))}
def multiInt(a:Int=2,b:Int=3):Int={return a*b}}
```

A. 9
B. 6
C. 8
D. 12
下面程序的运行结果是?

```
object test{
def main(args:Array[String]){
val a=Array(1,2,3,4,5)
val b=a.map(x=>{
var r=1;
for(i<-1 to x) r=r*i;
r})
print(b.sum)}}
```

A. 110
B. 153
C. 396
D. 440
spark是hadoop生态下哪个组件的替代方案?
A. Hadoop
B. Yarn
C. HDFS
D. MapReduce
spark中默认的存储级别是?
A. MEMORY_ONLY
B. MEMORY_ONLY_SER
C. MEMORY_AND_DISK
D. MEMORY_AND_DISK_SER
DataFrame和RDD最大的区别是?
A. 外部数据源支持
B. 科学统计支持
C. 多了schema
D. 储存方式不一样
下面哪个不是spark比MapReduce计算快的原因?
A. 基于分布式计算的框架
B. 基于DAG的调度框架
C. 基于内存的计算
D. 基于Lineage的容错机制
下面哪个操作是窄依赖?
A. join
B. filter
C. group
D. sort
下面哪个操作肯定是宽依赖?
A. flatMap
B. map
C. sample
D. reduceByKey
下面不是Spark的核心组件的是 ? ? ? ? ? 。?
A. Spark Streaming
B. Spark R
C. Spark SQL
D. GraphX
关于累加器,下面哪个是错误的?
A. 支持加法
B. 支持数值类型
C. 可并行
D. 不支持自定义类型
Stage 的 Task 的数量由什么决定?
A. Partition
B. Job
C. Stage
D. TaskScheduler
下面哪个不是 RDD 的特点?
A. 可分区
B. 可持久化
C. 可修改
D. 可序列化
下面程序的运行结果是?

```
object test{
def main(args:Array[String]){
print(addInt()+addInt(0)+addInt(b=0))}
def addInt(a:Int=2,b:Int=3):Int={return a+b}}
```

A. 10
B. 11
C. 12
D. 13
下面程序的运行结果是?

```
object test{
def main(args:Array[String]){
val a=Array(6,2,3,4,5)
val b=a.map(x=>x*x*x)
print(b.sum)}}
```

A. 110
B. 90
C. 396
D. 440

## 填空


Scala中要创建1个1到9(包含9)的连续整数数值序列,可以使用______________ 来表示。
Scala中要创建1个1到10(包含10)的连续整数数值序列,可以使用______________ 来表示。
在创建RDD时可以设置RDD的分区数量,分区数量应尽量_______ ?集群中所有CPU的核心总数,以便于最大程度发挥CPU性能。
CentOS8中安装Scala最简单的命令是 ______________ ? 。
循环遍历RDD数据集中的所有元素,可以使用_______ 。
Spark Streaming提供了一种高级抽象,称为_______ ,实际上是由多个 ____ 组成的序列。
Scala中没有静态方法,但可以使用关键字 ? _______ 定义一个单列对象,其中的方法相当于静态方法。
Spark提供了两种共享变量:_______ 和 ? _______ 。
返回RDD数据集中元素的个数,可以使用________行动操作。
Spark中的RDD叫做 ? ___________ ,是Spark中最基本的数据抽象单元。
Spark Streaming中,应用于DStream上的任何操作实际上都是对底层_____的操作,其转换由________引擎实现。
GraphX中主要的两个数据结构:_______。

## 判断
scala中定义变量时可以不赋值。?? ??? ??? ??? ??? ??? ??? ??? ?( ?)
scala中的while循环和do循环与java中不相同。 ? ? ? ??? ?( ?)
scala的异常工作机制和java一样,当程序抛出异常时当前的程序被终止。?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?( ?)
spark只能用webUI来查看运行日志。?? ??? ??? ??? ??? ??? ??? ?( ?)
scala中给变量赋值时一般不需要指定类型。?? ??? ??? ??? ??? ?( ? )
SparkStreaming的核心抽象是RDD。?? ??? ??? ??? ??? ??? ??? ??? ?( ? )
RDD通过cache()进行持久化实际上是调用了persist()方法?? ??? ?( ? )
Yarn 可以作为Spark的资源调度框架。?? ??? ??? ??? ??? ??? ??? ?( ?)
Spark SQL中可以直接使用SQL查询DataFrame。?? ??? ??? ??? ?( ?)
RDD通过persist()进行持久化实际上是调用了cache()方法?? ??? ?( ?)


## 简答
什么是DataFrame?
什么是RDD?
解析一个典型Spark作业的工作流程。

## 案例

使用Scala编写子程序计算
$$
\sum_{i=a}^{b}i^3
$$

```
def p0(a:Int,b:Int):Int={
?? ?val i=a to b;
?? ?val ii=i.map(x=>x*x*x)
?? ?return ii.sum
}
```

或者

```
def p1(a:Int,b:Int):Int={
?? ?if(b<a) return 0;
?? ?if(a==b)?
?? ??? ?return a*a*a
?? ?else
?? ??? ?return b*b*b+p1(a,b-1)
}
```

或者

```
def p2(a:Int,b:Int):Int={
?? ?if(b<a) return 0;
?? ?val s1=(b+1)*(b+1)*b*b/4
? ?val s2=(a-1)*(a-1)*a*a/4
? ?return s1-s2;
}
```


使用Scala编写子程序计算丑数(ugly number),丑数是其质因数只有2,3,5的数。例如6、8都是丑数,但14不是,因为它包含因子7。

```
def isUglyNum(a:Int):Boolean={
?? ?var i=a;
?? ?while(i%2==0) i=i/2;
?? ?while(i%3==0) i=i/3;
?? ?while(i%5==0) i=i/5;
?? ?return i==1
}?
```


有鸢尾花数据文件,每行数据分别为SepalLength(萼片长度(cm))、SepalWidth(萼片宽度(cm))、PetalLength(花瓣长度(cm))、PetalWidth(花瓣宽度(cm))、Class(类别),有“,”隔开。需计算各类别鸢尾花各项数据的平均值,补全程序::

```
object irisMain {
? def main(args:Array[String]):Unit={
? ? val conf=new SparkConf();
? ? val spark=SparkSession.builder().appName("iris").config(conf)
.master("local[*]").getOrCreate();
? ? val sc=spark.sparkContext;
? ? val linesRDD:RDD[String]=sc.textFile(args(0));
? ? val irisRDD:RDD[(String,(Float,Float,Float,Float))]=linesRDD.map(f=>{
? ? ? val line:Array[String]=f.split(",");
?(line(4),(line(0).toFloat,line(1).toFloat,line(2).toFloat,line(3).toFloat))
? ? })
? ? val ret=irisRDD.groupByKey().map(f=>{
? ? ? var a1,a2,a3,a4:Float=0;
? ? ? f._2.foreach(ff=>{
? ? ? ? a1=a1+ff._1;
? ? ? ? a2=a2+ff._2;
? ? ? ? a3=a3+ff._3;
? ? ? ? a4=a4+ff._4;
? ? ? })
? ? ? val count=f._2.count(p=>{true});
? ? ? (f._1,a1/count,a2/count,a3/count,a4/count)
? ? })
? ? ret.saveAsTextFile(args(1));
? }
}
```


有恒星分类数据集,每行数据分别为Temperature(温度(K),Int)、L(相对光度,Float)、R(相对半径,Float)、A_M(绝对幅度,Float)、Color(颜色,String)、Spectral_Class(SMASS规格,String)、Type(类型,Int),有“,”隔开。需计算各类型恒星温度、相对光度和相对半径的平均值,补全程序。

```
object starMain {
? def main(args:Array[String]):Unit={
? ? val conf=new SparkConf();
? ? val spark=SparkSession.builder().appName("star").config(conf)
.master("local[*]").getOrCreate();
? ? val sc=spark.sparkContext;
? ? val linesRDD:RDD[String]=sc.textFile(args(0));
? ? val starRDD:RDD[(Int,(Int,Float,Float))]=linesRDD.map(f=>{
? ? ? val line:Array[String]=f.split(",");
?(line(6).toInt,(line(0).toInt,line(1).toFloat,line(2).toFloat))
? ? })
? ? val ret=starRDD.groupByKey().map(f=>{
? ? ? var a1:Int=0;
var a2,a3:Float=0;
? ? ? f._2.foreach(ff=>{
? ? ? ? a1=a1+ff._1;
? ? ? ? a2=a2+ff._2;
? ? ? ? a3=a3+ff._3;
? ? ? })
? ? ? val count=f._2.count(p=>{true});
? ? ? (f._1,a1/count,a2/count,a3/count)
? ? })
? ? ret.saveAsTextFile(args(1));
? }
```

将上俩题使用Spark SQL完成计算。

```
object irisMain {
? def main(args:Array[String]):Unit={
? ? val conf=new SparkConf();
val spark=SparkSession.builder().appName("iris").config(conf)
.master("local[*]").getOrCreate();
? ? val sc=spark.sparkContext;
? ? val linesRDD:RDD[String]=sc.textFile(args(0));
val irisRDD:RDD[(String,Float,Float,Float,Float)]
=linesRDD.map(f=>{
? ? ? val line:Array[String]=f.split(",");
(line(4),line(0).toFloat,line(1).toFloat,line(2).toFloat,
line(3).toFloat)
? ? })
? ? import spark.implicits._;
? ? val df=irisRDD.toDF("Class,sl,sw,pl,pw");
? ? df.createTempView("iris");
? ? val ret=spark.sql("select Class,avg(sl),avg(sw),avg(pl),avg(pw) from iris group by Class");
? ? ret.rdd.saveAsTextFile(args(1));
? }
}
```

```
object starMain {
? def main(args:Array[String]):Unit={
? ? val conf=new SparkConf();
val spark=SparkSession.builder().appName("star").config(conf)
.master("local[*]").getOrCreate();
? ? val sc=spark.sparkContext;
? ? val linesRDD:RDD[String]=sc.textFile(args(0));
val starRDD:RDD[(Int,Int,Float,Float)]
=linesRDD.map(f=>{
? ? ? val line:Array[String]=f.split(",");
(line(6).toInt,line(0).toInt,line(1).toFloat,line(2).toFloat)
? ? })
? ? import spark.implicits._;
? ? val df=irisRDD.toDF("type,tp,L,R");
? ? df.createTempView("star");
? ? val ret=spark.sql("select type,avg(tp),avg(L),avg(R) from star group by type");
? ? ret.rdd.saveAsTextFile(args(1));
? }
}
```

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-26 22:16:11  更:2021-12-26 22:18:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 13:07:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码