云计算 Spark实验

云计算 Spark实验,第1张

云计算Spark实验
    • 实验环境
    • 1.spark-shell交互式编程。

    • 2.使用sbt对Scala独立应用程序进行编译打包,并在spark中运行

实验环境

Ubuntu 18.04
Spark 3.1.2
Java JDK 1.8
实验环境搭建参考林子雨老师的教程
Spark搭建(内含hadoop环境搭建链接)http://dblab.xmu.edu.cn/blog/2501-2/

/
本实验较多内容根据林子雨老师的教程完成,包括spark-shell的入门使用,sbt的安装与基础 *** 作,所以一定要结合给出的林子雨老师的教程分享

/

1.spark-shell交互式编程。

根据给定数据集(数据集是一个成绩单,每行的数据格式为 “姓名,课程名称,分数”)
输出该系有多少学生,多少课程

val data = sc.textFile("file:///home/hadoop/下载/data1.txt") #读取文件,file:///后面是数据集所在的路径
val count_student = data.map(line=>line.split(",")(0)).distinct().count  #求学生个数
val count_course = data.map(line=>line.split(",")(1)).distinct().count   #求课程个数
2.使用sbt对Scala独立应用程序进行编译打包,并在spark中运行

题目:编写应用程序,计算该系共开设了哪几门课程

解答:按照林子雨老师的流程,把SRC中的代码修改为

/* SimpleApp.scala */
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
 
object SimpleApp {
        def main(args: Array[String]) {
            val logFile = "file:///home/hadoop/下载/data1.txt" // 这里file:/// 后面是数据集所在的路径
            val conf = new SparkConf().setAppName("Simple Application")
            val sc = new SparkContext(conf)
            val data = sc.textFile(logFile, 2).cache()
            val course = data.map(line=>line.split(",")(1)).distinct()  
            course.repartition(1).saveAsTextFile("file:///home/hadoop/sparkapp/output")//这里file:/// 后面是输出文件保存的路径。

// .repartition(1) 是为了保证输出的内容保存在一个文件里面 } }

//代码好像不支持中文注释,引用时注意删除
注意在提交运行的时候,由于Scala 的版本不同,生成的scala文件夹和jar包名字也会有所不同,需要作对应的修改。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/662130.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-18
下一篇 2022-04-18

发表评论

登录后才能评论

评论列表(0条)

保存