SparkConf的练习题

本文提供了一系列基于Spark的编程练习题,涵盖了RDD操作、数据转换、数据分组、抽样、去重、分区调整等多个方面,旨在帮助读者深入理解和掌握Spark的核心功能。
摘要由CSDN通过智能技术生成

小补充:-》宽依赖的操作有哪些?
宽依赖:父RDD的一个分区会被子RDD的多个分区依赖
操作:groupByKey,reduceByKey,sortByKey,partitionBy, join

1、创建一个1-10数组的RDD,将所有元素2形成新的RDD
在这里插入图片描述
2、创建一个10-20数组的RDD,使用mapPartitions将所有元素
2形成新的RDD
在这里插入图片描述
3、创建一个元素为 1-5 的RDD,运用 flatMap创建一个新的 RDD,新的 RDD 为原 RDD 每个元素的 平方和三次方 来组成 1,1,4,8,9,27…
在这里插入图片描述
4、创建一个 4 个分区的 RDD数据为Array(10,20,30,40,50,60),使用glom将每个分区的数据放到一个数组
在这里插入图片描述
5、创建一个 RDD数据为Array(1, 3, 4, 20, 4, 5, 8),按照元素的奇偶性进行分组
在这里插入图片描述
6、创建一个 RDD(由字符串组成)Array(“xiaoli”, “laoli”, “laowang”, “xiaocang”, “xiaojing”, “xiaokong”),过滤出一个新 RDD(包含“xiao”子串)
在这里插入图片描述
7、创建一个 RDD数据为1 to 10,请使用sample不放回抽样
在这里插入图片描述
8、创建一个 RDD数据为1 to 10,请使用sample放回抽样
在这里插入图片描述
9、创建一个 RDD数据为Array(10,10,2,5,3,5,3,6,9,1),对 RDD 中元素执行去重操作
在这里插入图片描述
10、创建一个分区数为5的 RDD,数据为0 to 100,之后使用coalesce再重新减少分区的数量至 2
在这里插入图片描述
11、创建一个分区数为5的 RDD,数据为0 to 100,之后使用repartition再重新减少分区的数量至 3
在这里插入图片描述
12、创建一个 RDD数据为1,3,4,10,4,6,9,20,30,16,请给RDD进行分别进行升序和降序排列
在这里插入图片描述
13、创建两个RDD,分别为rdd1和rdd2数据分别为1 to 6和4 to 10,求并集
在这里插入图片描述
14、创建两个RDD,分别为rdd1和rdd2数据分别为1 to 6和4 to 10,计算差集,两个都算
在这里插入图片描述
15、创建两个RDD,分别为rdd1和rdd2数据分别为1 to 6和4 to 10,计算交集
在这里插入图片描述
16、创建两个RDD,分别为rdd1和rdd2数据分别为1 to 6和4 to 10,计算 2 个 RDD 的笛卡尔积
在这里插入图片描述
17、创建两个RDD,分别为rdd1和rdd2数据分别为1 to 5和11 to 15,对两个RDD拉链操作
在这里插入图片描述
18、创建一个RDD数据为List((“female”,1),(“male”,5),(“female”,5),(“male”,2)),请计算出female和male的总数分别为多少
在这里插入图片描述
19、创建一个有两个分区的 RDD数据为List((“a”,3),(“a”,2),(“c”,4),(“b”,3),(“c”,6),(“c”,8)),取出每个分区相同key对应值的最大值,然后相加
在这里插入图片描述
20、创建一个有两个分区的 pairRDD数据为Array((“a”, 88), (“b”, 95), (“a”, 91), (“b”, 93), (“a”, 95), (“b”, 98)),根据 key 计算每种 key 的value的平均值
在这里插入图片描述
21、统计出每一个省份广告被点击次数的 TOP3,数据在access.log文件中
数据结构:时间戳,省份,城市,用户,广告 字段使用空格分割。
样本如下:
1516609143867 6 7 64 16
1516609143869 9 4 75 18
1516609143869 1 7 87 12
代码:
在这里插入图片描述
结果:
在这里插入图片描述
22、读取本地文件words.txt,统计出每个单词的个数,保存数据到 hdfs 上
数据:

== words.txt==
hadoop hadoop spark spark spark java java
sqoop sqoop jdk jdk
hive hive hive hbase
hbase flume
flume oozie oozie
flink flink flink
hello hello hello scala scala
代码:
在这里插入图片描述
结果:
在这里插入图片描述

23、读取 people.json 数据的文件, 每行是一个 json 对象,进行解析输出
数据:

people.json
{“name”:“Michael1”}
{“name”:“Andy1”, “age”:30}
{“name”:“Justin1”, “age”:19}
{“name”:“Michael2”}
{“name”:“Andy2”, “age”:20}
{“name”:“Justin2”, “age”:22}
{“name”:“Michael3”}
{“name”:“Andy3”, “age”:25}
{“name”:“Justin3”, “age”:26}
代码:
在这里插入图片描述
结果:
在这里插入图片描述

24、保存一个 SequenceFile 文件,使用spark创建一个RDD数据为Array((“a”, 1),(“b”, 2),(“c”, 3)),保存为SequenceFile格式的文件到hdfs上

代码:
在这里插入图片描述
结果:
在这里插入图片描述

25、读取24题的SequenceFile 文件并输出

代码:
在这里插入图片描述
结果:
在这里插入图片描述

26、读写 objectFile 文件,把 RDD 保存为objectFile,RDD数据为Array((“a”, 1),(“b”, 2),(“c”, 3)),并进行读取出来
代码:
在这里插入图片描述
27、使用内置累加器计算Accumulator.txt文件中空行的数量
数据:Accumulator.txt

hadoop hadoop
spark spark spark java java
sqoop
sqoop
jdk jdk
hive hive hive hbase
hbase flume
flume oozie oozie
flink flink flink
hello hello hello scala scala
hadoop hadoop
spark spark spark
java java
sqoop sqoop
jdk jdk
hive hive hive hbase
hbase flume
flume oozie oozie
flink flink flink
hello hello hello scala scala在这里插入图片描述

28、使用Spark广播变量
用户表:
id name age gender(0|1)
001,刘向前,18,0
002,冯 剑,28,1
003,李志杰,38,0
004,郭 鹏,48,2
要求,输出用户信息,gender必须为男或者女,不能为0,1
使用广播变量把Map(“0” -> “女”, “1” -> “男”)设置为广播变量,最终输出格式为
001,刘向前,18,女
003,李志杰,38,女
002,冯 剑,28,男
004,郭 鹏,48,男
代码:

object day28{
   
    def main(args: Array[String]): Unit = {
   
        val conf = new SparkConf().setMaster("local[2]").setAppName(_01SparkPersistOps.getClass.getSimpleName())
        val sc = new SparkContext(conf)
        Logger.getLogger("org.apache.spark").setLevel(Level.OFF)
        Logger.getLogger("org.apache.hadoop").setLevel(Level.OFF)

        val userList = List(
            "001,刘向前,18,0",
            "002,冯  剑,28,1",
            "003,李志杰,38,0",
            "004,郭  鹏,48,2"
        )
        val genderMap = 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: `SparkConf()`是Apache Spark中用于配置Spark应用程序的类。它包含了各种配置项,如应用程序名称、master URL、executor内存等等。在创建SparkContext之前,需要使用`SparkConf()`创建一个SparkConf对象,并使用`set()`方法设置相应的配置项。例如: ``` from pyspark import SparkConf, SparkContext conf = SparkConf().setAppName("MyApp").setMaster("local") sc = SparkContext(conf=conf) ``` 在这个例子中,我们创建了一个名为“MyApp”的Spark应用程序,并将其运行在本地模式下。`set()`方法用于设置配置项,`setAppName()`用于设置应用程序名称,`setMaster()`用于设置Spark的master URL。 ### 回答2: SparkConf()是Apache Spark中用于配置Spark应用程序的一个类。它提供了许多选项,可以设置各种参数,以优化和管理Spark应用程序的执行。 首先,SparkConf()可以用于设置Spark应用程序的名称。这个名称将在Spark集群的UI界面中显示,以便用户可以很容易地识别出他们正在运行的应用程序。 其次,SparkConf()还可以设置应用程序运行时的一些参数,例如运行模式和资源管理器。我们可以将其设置为local模式,以便在本地机器上运行Spark应用程序进行开发和调试。或者,我们可以将其设置为集群模式,以便在分布式环境中运行应用程序。 此外,SparkConf()还可以设置应用程序的资源管理器。默认情况下,Spark使用内置的资源管理器来管理应用程序的资源分配。但是,我们也可以将其设置为外部资源管理器,如Apache Mesos或Hadoop YARN。 最后,SparkConf()还可以用于设置一些其他的属性,如内存分配、并行度等。通过设置这些属性,我们可以优化应用程序的性能,使其能够更好地利用集群资源。 总之,SparkConf()是一个非常重要的类,通过它我们可以对Spark应用程序进行各种配置和参数设置,以满足我们的需求并优化应用程序的执行。通过适当地使用SparkConf(),我们可以提高应用程序的性能和可靠性,从而更好地利用大数据处理的潜力。 ### 回答3: SparkConf()是Apache Spark中的一个配置类,用于设置和管理Spark应用程序的配置信息。 SparkConf()类可以用于设置Spark应用程序的一些基本属性,比如应用程序的名称、运行模式、Master节点的地址等。可以通过创建一个SparkConf的实例,并调用相应的方法来设置这些属性。 通常情况下,创建一个SparkConf的实例时,可以不传入任何参数,Spark会使用默认配置。但是,为了根据特定需求来定制Spark应用程序的参数,我们可以通过SparkConf对象来进行设置。例如: ``` conf = SparkConf() conf.setAppName("My Spark Application") conf.setMaster("local[4]") ``` 上述代码中,首先创建了一个SparkConf的实例,然后通过setAppName()方法设置了应用程序的名称为"My Spark Application",通过setMaster()方法设置了Master节点的地址为"local[4]",表示在本地使用4个线程进行运算。 SparkConf()类还提供了其他一些常用的方法,用于设置和获取Spark应用程序的配置属性。例如,set("spark.executor.memory", "2g")可以设置Executor节点的内存大小为2GB,get("spark.app.name")可以获取应用程序的名称。 总之,SparkConf()是一个重要的类,用于管理Spark应用程序的配置信息。通过设置不同的配置参数,可以对Spark应用程序进行定制,以适应不同的运行环境和需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值