当前位置: 首页 > news >正文

Hadoop+Spark大数据技术(测试)

1、九九乘法表

在下面的单元格中编写Scala程序,输出上三角形的九九乘法表,并运行。

for (i <- 1 to 9 reverse) {for (j <- 1 to i) {print(s"$j x $i = ${i * j}\t")}println()
}

2、单词计数

在下面的若干单元格中编写Spark程序,对test.txt中的单词计数,并输出统计结
果。
test.txt的内容为下面三行:
Life would be too smooth if it had no rubs in it
Life is the art of drawing sufficient conclusions form insufficient premises
The wealth of the mind is the only wealth

import org.apache.spark.sql.SparkSessionobject WordCount {def main(args: Array[String]): Unit = {val spark = SparkSession.builder().appName("WordCount").getOrCreate()val textFile = spark.sparkContext.textFile("test.txt")val words = textFile.flatMap(_.split("\\W+"))val wordCounts = words.map(word => (word, 1)).reduceByKey(_ + _)wordCounts.foreach(println)spark.stop()}
}// 程序入口点
WordCount.main(Array())

3、DataFrame

在下面的若干单元格中编写Spark程序,利用grade.csv创建Spark SQL DataFrame。

header参数:用于指示csv文件中是否包含标题行。如果设置为True,则SPamk会券试将第一行作为列名使用。

inferSchema参数:如果设置为True,Spark会自动尝试推断每列的数据类型。

(1)统计行数。
(2)筛选Python,Java,scala都不低手85的行。

(3)分班级统计各门课程的平均分。

import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._object GradeAnalysis {def main(args: Array[String]): Unit = {val spark = SparkSession.builder().appName("GradeAnalysis").getOrCreate()// 加载CSV文件并创建DataFrameval gradeDF = spark.read.option("header", "true") // 指示CSV文件中包含标题行.option("inferSchema", "true") // 自动推断列的数据类型.csv("grade.csv")// (1) 统计行数val rowCount = gradeDF.count()println(s"Total number of rows: $rowCount")// (2) 筛选Python, Java, Scala成绩都不低于85的行val highAchievers = gradeDF.filter((col("Python") >= 85) &&(col("Java") >= 85) &&(col("Scala") >= 85))println("Students with grades above 85 in all three subjects:")highAchievers.show()// (3) 分班级统计各门课程的平均分val classAverages = gradeDF.groupBy("Class").agg(mean("Python").as("Python_Avg"),mean("Java").as("Java_Avg"),mean("Scala").as("Scala_Avg"))println("Class averages for each subject:")classAverages.show()spark.stop()}
}

4、Graphx属性图

在下面的若干单元格中编写Spark程序,利用下图创建Graphx属性图,并完成:

(1)输出图的顶点信息和边信息。

(2)找出属性为PI的边 。

(3)找出属性为professor的顶点。

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.graphx.{Edge, Graph, VertexId}
import org.apache.spark.rdd.RDDobject GraphXExample {def main(args: Array[String]): Unit = {val conf = new SparkConf().setAppName("GraphX Example")val sc = new SparkContext(conf)// 假设的顶点数据val vertices: RDD[(VertexId, (String, String))] = sc.parallelize(Seq((1L, ("Alice", "student")),(2L, ("Bob", "student")),(3L, ("Charlie", "professor"))// 添加更多顶点...))// 假设的边数据val edges: RDD[Edge[(String, String)]] = sc.parallelize(Seq(Edge(1L, 3L, ("enrolled", "CS101")),Edge(2L, 3L, ("enrolled", "CS102")),// 添加更多边...))// 创建GraphX的Graph对象val graph = Graph(vertices, edges)// (1) 输出图的顶点信息和属性println("Vertices and their attributes:")graph.vertices.collect().foreach {case (vid, (name, attr)) => println(s"Vertex $vid: Name = $name, Attribute = $attr")}// (2) 输出属性为"enrolled"的边println("\nEdges with 'enrolled' attribute:")graph.edges.filter(e => e.attr._1 == "enrolled").collect().foreach {case Edge(src, dst, attr) => println(s"Edge from Vertex $src to $dst with Attribute = $attr")}// (3) 输出属性为"professor"的顶点println("\nVertices with 'professor' attribute:")graph.vertices.filter { case (_, (_, attr)) => attr == "professor" }.collect().foreach {case (vid, (_, _)) => println(s"Vertex $vid is a professor")}sc.stop()}
}// 运行程序
GraphXExample.main(Array())

http://www.lryc.cn/news/378961.html

相关文章:

  • 使用新语法连接Qt 5中重载的信号和槽
  • 梯度提升决策树(GBDT)的训练过程
  • 路由器的Wi-Fi性能是否限制了你的网速?这里有你想要的答案
  • 简站WordPress是最简洁好用易上手的wordpress企业建站主题
  • 阿里云 debian10.3 sudo apt-get updat 报错的解决方案
  • vite中使用scss技巧
  • PyQt5/Pyside2学习记录
  • 记一次通过脚本来实现自定义容器的自动重启
  • 基于Django、Bootstrap的电影推荐系统,算法基于用户的协同过滤算法,有爬虫有可视化后台
  • mysql、mariadb 登录主机的含义,如何修改登录主机,如何删除登录主机
  • c++ 设计模式 的课本范例
  • QT中绘制点阵
  • 机器人里程计(Odometry)
  • 后端实现预览pdf,mp4,图片
  • 【C++】数据类型、函数、头文件、断点调试、输入输出、条件与分支、VS项目设置
  • Spring框架的原理及应用详解(六)
  • C++ | Leetcode C++题解之第151题反转字符串中的单词
  • Leetcode 415. 字符串相加-大数相加
  • IDEA集成Docker实现快捷部署
  • 五十四、openlayers官网示例LineString Arrows解析——在地图上绘制箭头
  • 内核学习——3、自旋锁的作用及其实现
  • 恒昌公益第五所“云杉校园”于湖南怀化正式揭牌
  • 番外篇 | YOLOv8算法解析和实战应用:车辆检测 + 车辆追踪 + 行驶速度计算
  • 【React】useState 的原理
  • 从二元一次方程组到二阶行列式再到克拉默法则
  • 示例:WPF中绑定枚举到ComboBox想显示成中文或自定义名称如何实现
  • 嵌入式系统软件架构设计方法
  • 【面试题】风险评估和应急响应的工作流程
  • Vue70-路由的几个注意点
  • Aidlux 1.4 部署Nextcloud 2024.6实录 没成功