Spark大数据技术与应用期末总结大题

  1. PySpark启动以Local,yarn,standalone,mesos2、控制日志级别,有效的日志级别包括:ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN控制日志输出内容的方式有两种log4j.rootCategory=INFO, console和from pyspark import SparkContext  sc =SparkContext(“local”,”First App”) sc.setLogLevel(“WARN”)3、RDD是什么弹性分布式数据集,RDD是只读的、分区记录的集合,RDD只能基于在稳定物理存储中的数据集和其他已有的RDD上执行确定性操作来创建4、共享变量:累加器和广播变量5、如何理解 Spark RDD 中的血统概念。RDD只支持粗粒度转换,即在大量记录上执行单个操作。RDD的血统(Lineage)会记录 RDD的元数据信息和转换行为,当该RDD自内部分分区数据丢失时,它可以根据这些信息重新运算并恢复丢失的分区数据。6、RDD之间的依赖关系,分为窄依赖如map,filter,union和宽依赖groupByKey,reduceByKey,sortByKey。7、RDD的持久化--持久化的方法:persist()或cache(),持久化存储级:MEMORY_ONLY,MEMORY_ONLY_2,MEMORY_AND_DISK,MEMORY_AND_DISK_2,DISK_ONLY及DISK_ONLY_2。8、请写出 Spark RDD 的四种创建方式。1).从集合中创建RDD,Spark主要提供了两个方法:parallelize和makeRDD 2).从外部存储文件创建RDD3).从其它RDD创建4).直接创建RDD(new) 5).基于Nosql创建rdd,如hbase6).基于s3创建rdd,7).基于数据流,如socket创建rdd。9、简述 Spark Streaming 获取数据的方式,并写出其使用的方法。socket获取,socketTextStream();HDFS获取,textFileStream();Kafka获取,pyspark.streaming.kafka.KafkaUtils;Flume获取,pyspark.streaming.flume.flumeUtils10、请简述Spark SQL与DataFrame的区别与联系?区别:RDD是分布式的java对象的集合,但是对象内部结构对于RDD而言却是不可知的。DataFrame是一种以RDD为基础的分布式数据集,提供了详细的结构信息,相当于关系数据库中的一张表。联系1.都是spark平台下的分布式弹性数据集,为处理超大型数据提供便利2、都有惰性机制,在进行创建、转换,如map方法时,不会立即执行,只有在遇到Action才会运算3.都会根据spark的内存情况自动缓存运算,这样即使数据量很大,也不用担心会内存溢出4、三者都有partition的概念5.三者有许多共同的函数,如filter,排序等11、请简述SparkStreaming的工作原理?SparkStreaming从数据流接受实时数据流,并将数据分为若干批,然后由spark引擎进行处理,最后批量生成结果流。12.spark运行模式有哪些,并简要说明每种运行模式 local模式:spark单机运行,一般用于开发测试。standalone模式:构建一个由Master+Slave构成的Spark集群,Spark运行在集群中。spark on Yarn模式:Spark客户端直接连接Yarn,不需要额外构建Spark集群。spark on Mesos模式:Spark客户端直接连接Mesos,不需要额外构建Spark集群。13、流数据的特点:实施到达,次序独立,规模宏大,不易提取。14、SparkStreaming的基本步骤:根据数据源创建DStream,自定义处理逻辑,启动处理流程,等待处理结果,结束计算流程15、SparkStreaming数据加载步骤:初始化sparkcontext,创建streamingcontext对象,创建inputDStream16、Dstream持久化 1.Print()注:在Python中使用Pprint( )2.saveAsTextFiles(prefix,[suffix])3.saveAsObjectFiles Python不可用4.saveAsHadoopFiles(prefix,[suffix])5.foreachRDD(func)17、(1)将数据读成 RDD 格式。Lines = sc.textFile(“/home/ubuntu/data/blogInfo.txt”) (2)统计一共有多少个不同的用户ID。 Data = lines.flatMap(lambda x:x.split(“\t”)) Result = data.distinct().count() (3)统计出每个用户的粉丝数量。 Data3 = lines.map(lambda x: x.split(\t)[1]) Result3 = data3.map(lambda x: (x,1)).reduceByKey(lambda x,y: x+y).collect() (4)将步骤(3)的结果写入到 HDFS 文件中(具体路径为:hdfs://linux01:9000/out/result.txt)。Result3.saveAsTextFile(hdfs://linux01:9000/out/result.txt) 18.(1)将数据读成 DataFrame 类型,列名分别为“time”、“name”和“num”。 data = spark.read.load(“/home/ubuntu/data/log.txt”, format =”csv”, sep=”\t”, header=True) (2)将数据注册为 SQL 表,表名为“log”。 data.registerTempTable(“log”) (3)统计同一天里同一网页的总访问量。 spark.sql(“select time,name,sum(num) from log groupby time,name”).show()(4)统计每个网页的总访问量,并按照总访问量降序排序。sql = “select name,sum(num) fangwenliang from log groupby name order by fangwenliang desc” spark.sql(sql).show()19、(1)将数据加载为 DataFrame 格式。 employee = spark.read.json(“/home/ubuntu/data/employee.json”) (2)查询所有数据,并删除重复的数据。  employee.select(“id”,”name”,”age”).distinct().show()(3)将数据按照 name 升序排列。 employee.select(“id”,”name”,”age”).orderBy(“name”).show() (4)将数据保存为 parquent 格式,仍旧保存在/home/ubuntu/data/目录下。 employee.write.save(“/home/ubuntu/data/employee.paquent”) 20、Spark SQL执行包括了什么:Operation、Data Source、Result、Optimize。21、Spark MLib提供的高阶API包括ML Algorithms、Featurization、Pipelines、Utilities22、Spark的特点:迅速,通用,支持多种资源管理器。23、Spark与 Hadoop处理的许多任务相同,但是在以下两个方面不相同。(1)解决问题方式不一样:hadoop是一个分布式数据基础构架,spark是一个专门对分布式存储的大数据进行处理的工具,并不会进行分布式数据的存储。(2)两者可合可分,Hadoop不仅提供hdfs的分布式数据存储功能还能用mapreduce进行处理,而spark也可以用其他跟不是文件系统24spark比DSM的优势:rdd批量操作会根据数据存放的位置来调度任务;对于扫描类型操作,内存不足,以缓存整个rdd就进行部分缓存,避免内存溢出。25、RDD的特点:分片,自定义分片计算函数,RDD之间相互依赖,控制分片数量,使用列表方式进行块存储,
  2. 请列举7个 Spark RDD 的action算子,并简述功能。

    答:

    reduce(f):通过指定的聚合方法对 RDD 中的元素进行聚合操作。

    collect():返回一个包含 RDD 所有元素的列表。

    count():统计 RDD 中元素的个数。

    take(n):获取 RDD 中前 n 个元素的值,返回的结果为列表类型。

    first():返回 RDD 中的第一个元素,返回的数据类型为元素类型。

    top(n):返回 RDD 中最大的前 n 个元素,返回的结果为列表类型。

    saveAsTextFile():将 RDD 中的元素以字符串的格式存储于文件系统中。

    foreach(f):遍历 RDD 中的每个元素,同时通过传递自定义的处理函数 f,对 RDD 中的每个元素进行处理。

    foreachPartition(f):遍历 RDD 的 每个分区,同时通过传递的 f 对每个分区进行操作。

    列举7个Spark RDD 的transformation 算子,并简述功能。

    答:

    map:对RDD中的数据逐条进行映射,可以是类型转换,也可是值转换。

    flatMap:先对RDD中的所有元素进行map操作,然后将结果平坦化。

    filter:按照指定条件对RDD中的元素进行过滤。

    union:将两个RDD求并集,并返回一个新的RDD。

    intersection:将两个RDD求交集,并返回一个新的RDD,其输出不包含任何重复元素。

    sortBy:通过指定key对RDD中的元素进行排序。

    mapPartitions:对RDD的每个分区进行map运算。

你可能感兴趣的:(Spark,spark,big,data,kafka)