- 实验环境
- 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包名字也会有所不同,需要作对应的修改。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)