大数据必知必会系列——面试官问能不能手写一个spark程序?[新星计划]

Posted ChinaManor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据必知必会系列——面试官问能不能手写一个spark程序?[新星计划]相关的知识,希望对你有一定的参考价值。

 

 引言

        

 大家好,我是ChinaManor,直译过来就是中国码农的意思,俺希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,一个平凡而不平庸的人。     

学习大数据差不多一年了,笔者最近在整理大数据学习的笔记资料,这个系列是整理的一些大数据必知必会的知识。
 


面试官问:看你简历上写spark一项是熟练程度,能不能给我手写一个spark程序?

我:当然能(不行

当初写简历时为了不留出那么多空造的,哪会写什么spark程序??

有没有办法拯救?有


写最简单的一个spark案例:wordcount

// TODO: 创建SparkContext实例对象,首先构建SparkConf实例,设置应用基本信息
		val sc: SparkContext = {
			// 其一、构建SparkConf对象,设置应用名称和master
			val sparkConf: SparkConf = new SparkConf()
    			.setAppName("SparkWordCount")
    			.setMaster("local[2]")
			// 其二、创建SparkContext实例,传递sparkConf对象
			new SparkContext(sparkConf)
		}
		
		// TODO: 第一步、从HDFS读取文件数据,sc.textFile方法,将数据封装到RDD中
		val inputRDD: RDD[String] = sc.textFile("datas/wordcount.data")
		
		// TODO: 第二步、调用RDD中高阶函数,进行处理转换处理,函数:flapMap、map和reduceByKey
		val resultRDD: RDD[(String, Int)] = inputRDD
			// 按照分隔符分割单词
			.flatMap(line => line.split("\\\\s+"))
			// 转换单词为二元组,表示每个单词出现一次
			.map(word => word -> 1)
			// 按照单词分组,对组内执进行聚合reduce操作,求和
			.reduceByKey((tmp, item) => tmp + item)
		
		// TODO: 第三步、将最终处理结果RDD保存到HDFS或打印控制台
		resultRDD.saveAsTextFile("datas/spark-wordcount")
		
		// 为了查看应用监控,可以让进程休眠
		Thread.sleep(100000)
		
		// 应用结束,关闭资源
		sc.stop()

短短12行代码。。。

足矣。

总结
 

    以上便是spark最经典的程序,也是大数据领域最经典的程序,地位相当于java语言的System.out.println("Hello World");

,愿你读过之后有自己的收获,如果有收获不妨一键三连~我们下期再见👋

以上是关于大数据必知必会系列——面试官问能不能手写一个spark程序?[新星计划]的主要内容,如果未能解决你的问题,请参考以下文章

大数据必知必会系列__面试官问能不能徒手画一下你们的项目架构[新星计划]

手把手写C++服务器(23):必知必会!操作系统面试十连问

大数据必知必会系列——面试官一问就懵:你们做过的项目技术是如何选型的?[新星计划]

大数据面试杀招——Spark高频考点,必知必会!

大数据必知必会系列——萌新提问怎么定义HiveUDF函数?能否给个示例[新星计划]

架构师必知必会系列系统架构设计需要知道的5大精要(5 System Design fundamentals)...