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

简介: 大数据必知必会系列——面试官问能不能手写一个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");

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


相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
消息中间件 分布式计算 大数据
大数据-113 Flink DataStreamAPI 程序输入源 自定义输入源 非并行源与并行源
大数据-113 Flink DataStreamAPI 程序输入源 自定义输入源 非并行源与并行源
221 0
|
10月前
|
人工智能 分布式计算 大数据
大数据≠大样本:基于Spark的特征降维实战(提升10倍训练效率)
本文探讨了大数据场景下降维的核心问题与解决方案,重点分析了“维度灾难”对模型性能的影响及特征冗余的陷阱。通过数学证明与实际案例,揭示高维空间中样本稀疏性问题,并提出基于Spark的分布式降维技术选型与优化策略。文章详细展示了PCA在亿级用户画像中的应用,包括数据准备、核心实现与效果评估,同时深入探讨了协方差矩阵计算与特征值分解的并行优化方法。此外,还介绍了动态维度调整、非线性特征处理及降维与其他AI技术的协同效应,为生产环境提供了最佳实践指南。最终总结出降维的本质与工程实践原则,展望未来发展方向。
536 0
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
1162 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
651 79
|
分布式计算 监控 大数据
大数据-114 Flink DataStreamAPI 程序输入源 自定义输入源 Rich并行源 RichParallelSourceFunction
大数据-114 Flink DataStreamAPI 程序输入源 自定义输入源 Rich并行源 RichParallelSourceFunction
281 0
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
377 0
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
328 0
|
消息中间件 存储 分布式计算
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
398 0
|
SQL 机器学习/深度学习 分布式计算
Spark快速上手:揭秘大数据处理的高效秘密,让你轻松应对海量数据
【10月更文挑战第25天】本文全面介绍了大数据处理框架 Spark,涵盖其基本概念、安装配置、编程模型及实际应用。Spark 是一个高效的分布式计算平台,支持批处理、实时流处理、SQL 查询和机器学习等任务。通过详细的技术综述和示例代码,帮助读者快速掌握 Spark 的核心技能。
689 6