关键词:
注意:spark的编码格式是utf-8,其他的格式会有乱码,所以文件要使用utf-8编码
pom.xml:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>gao</groupId> <artifactId>WordCount</artifactId> <version>1.0-SNAPSHOT</version> <properties> <spark.version>2.1.0</spark.version> <scala.version>2.11</scala.version> </properties> <dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_$scala.version</artifactId> <version>$spark.version</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_$scala.version</artifactId> <version>$spark.version</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_$scala.version</artifactId> <version>$spark.version</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-hive_$scala.version</artifactId> <version>$spark.version</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-mllib_$scala.version</artifactId> <version>$spark.version</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.scala-tools</groupId> <artifactId>maven-scala-plugin</artifactId> <version>2.15.2</version> <executions> <execution> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.19</version> <configuration> <skip>true</skip> </configuration> </plugin> </plugins> </build> </project>
(1)该系总共有多少学生;
(2)该系共开设来多少门课程;
(3)Tom 同学的总成绩平均分是多少;
(4)求每名同学的选修的课程门数;
(5)该系 DataBase 课程共有多少人选修;
(6)各门课程的平均分是多少;
(7)使用累加器计算共有多少人选了 DataBase 这门课。
import org.apache.spark.SparkConf import org.apache.spark.SparkContext object one def main(args: Array[String]) val conf = new SparkConf() conf.setMaster("local") .setAppName("text1") val sc = new SparkContext(conf) val rdd = sc.textFile("C:\Users\Administrator\Desktop\Data01.txt") //该系总共有多少学生; val par=rdd.map( row=>row.split(",")(0)) var count=par.distinct() println("学生总人数:"+count.count()) //该系共开设来多少门课程; val couse=rdd.map( row=>row.split(",")(1)) println("课程数:"+couse.distinct().count()) //Tom 同学的总成绩平均分是多少; val pare = rdd.filter(row=>row.split(",")(0)=="Tom") /*pare.foreach(println)*/ pare.map(row=>(row.split(",")(0),row.split(",")(2).toInt)) .mapValues(x=>(x,1)) .reduceByKey((x,y) => (x._1+y._1,x._2 + y._2)) .mapValues(x => (x._1 / x._2)) .collect().foreach(x=>println("Tom的平均成绩:"+x._2)) //求每名同学的选修的课程门数; val pare2 = rdd.map(row=>(row.split(",")(0),row.split(",")(1))) pare2.mapValues(x => (x,1)).reduceByKey((x,y) => (" ",x._2 + y._2)).mapValues(x => x._2).foreach(println) //该系 DataBase 课程共有多少人选修; val pare3 = rdd.filter(row=>row.split(",")(1)=="DataBase") println("DataBase的选修人数:"+pare3.count) // 各门课程的平均分是多少; val pare4 = rdd.map(row=>(row.split(",")(1),row.split(",")(2).toInt)) pare4.mapValues(x=>(x,1)) .reduceByKey((x,y) => (x._1+y._1,x._2 + y._2)) .mapValues(x => (x._1/ x._2)) .collect().foreach(println) //使用累加器计算共有多少人选了 DataBase 这门课。 val pare5 = rdd.filter(row=>row.split(",")(1)=="DataBase") .map(row=>(row.split(",")(1),1)) val accum = sc.longAccumulator("My Accumulator") pare5.values.foreach(x => accum.add(x)) println("选了 DataBase 这门课的人数:"+accum.value)
2.对于两个输入文件 A 和 B,编写 Spark 独立应用程序,对两个文件进行合并,并剔除其 中重复的内容,得到一个新文件 C
import org.apache.spark.SparkContext import org.apache.spark.SparkContext._ import org.apache.spark.SparkConf import org.apache.spark.HashPartitioner object two def main(args: Array[String]) val conf = new SparkConf() conf.setMaster("local") .setAppName("text2") val sc = new SparkContext(conf) val dataFile = "C:\Users\Administrator\Desktop\data" val data = sc.textFile(dataFile,2) val res = data.filter(_.trim().length>0).map(line=>(line.trim," ")) .partitionBy(new HashPartitioner(1)).groupByKey().sortByKey().keys res.saveAsTextFile("result")
3.每个输入文件表示班级学生某个学科的成绩,每行内容由两个字段组成,第一个是学生 名字,第二个是学生的成绩;编写 Spark 独立应用程序求出所有学生的平均成绩,并输出到 一个新文件中。
import org.apache.spark.SparkContext import org.apache.spark.SparkContext._ import org.apache.spark.SparkConf import org.apache.spark.HashPartitioner object three def main(args: Array[String]) val conf = new SparkConf() conf.setMaster("local") .setAppName("text3") val sc = new SparkContext(conf) val dataFile = "C:\Users\Administrator\Desktop\data1" val data = sc.textFile(dataFile,3) val res = data.filter(_.trim().length>0) .map(line=>(line.split(" ")(0).trim() ,line.split(" ")(1).trim().toInt)) .partitionBy(new HashPartitioner(1)) .groupByKey().map(x => var n = 0 var sum = 0.0 for(i <- x._2) sum = sum + i n = n +1 val avg = sum/n val format = f"$avg%1.2f".toDouble (x._1,format) ) res.saveAsTextFile("result1")
rdd编程初级实践(基于python)(代码片段)
RDD编程初级实践(基于python)1.实验目的2.实验环境3.实验数据3.1pyspark交互式编程(实验描述)3.2编写独立应用程序实现数据去重(实验描述)3.3编写独立应用程序实现求平均值问题(实验描述)3.4... 查看详情
第五周周二练习:实验5sparksql编程初级实践(代码片段)
1.题目:源码:importjava.util.Propertiesimportorg.apache.spark.sql.types._importorg.apache.spark.sql.Rowimportorg.apache.spark.sql.SparkSessionimportorg.apache.spark.sql.DataFrameReaderobjectTestMySQLdefma 查看详情
实验5mapreduce初级编程实践——编程实现文件合并和去重操作(代码片段)
一、实验目的通过实验掌握基本的MapReduce编程方法;掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。二、实验平台操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04)Hadoop版本ÿ... 查看详情
实验5mapreduce初级编程实践——对给定的表格进行信息挖掘(代码片段)
一、实验目的通过实验掌握基本的MapReduce编程方法;掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。二、实验平台操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04)Hadoop版本ÿ... 查看详情
实验7spark初级编程实践(代码片段)
文章目录一、实验目的二、实验平台三、实验步骤1.准备工作(1)安装spark及其API程序(2)配置环境变量(3)启动Hadoop2.Spark读取文件系统的数据3.编写独立应用程序实现数据去重4.编写独立应用程序实现求... 查看详情
实验5mapreduce初级编程实践(python实现)(代码片段)
一、实验目的通过实验掌握基本的MapReduce编程方法;掌握用MapReduce解决一些常见数据处理问题的方法,包括数据合并、数据去重、数据排序和数据挖掘等。二、实验平台操作系统:Ubuntu18.04(或Ubuntu16.04)Hadoop... 查看详情
《移动项目实践》实验报告——初级控件(代码片段)
实验目的1、掌握Android屏幕显示与初级视图的相关知识;2、掌握包括屏幕显示基础、简单布局的用法、简单控件的用法、简单图形的用法实验内容以windows上的计算器为例,程序界面如下图所示:完成精简之后的Android... 查看详情
实验5mapreduce初级编程实践——编程实现文件合并和去重操作(代码片段)
一、实验目的通过实验掌握基本的MapReduce编程方法;掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。二、实验平台操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04)Hadoop版本ÿ... 查看详情
rdd编程初级实践(代码片段)
RDD编程初级实践一、pyspark交互式编程二、编写独立应用程序实现数据去重三、编写独立应用程序实现求平均值问题一、pyspark交互式编程本作业提供分析数据data.txt,该数据集包含了某大学计算机系的成绩,数据格式如下... 查看详情
rdd编程初级实践(代码片段)
...Jim,DataBase,90Jim,Algorithm,60Jim,DataStructure,80……请根据给定的实验数据,在pyspark中通过编程来计算以下内容:(1)该系总共有多少学生;代码如下:lines=sc.textFile("file:///usr/local/spark/sparksqldata/data.txt")r... 查看详情
rdd编程初级实践
RDD编程初级实践一、实验目的(1)熟悉Spark的RDD基本操作及键值对操作;(2)熟悉使用RDD编程解决实际具体问题的方法。二、实验平台操作系统:Ubuntu16.04Spark版本:2.4.0Python版本:3.4.3三、实验内... 查看详情
2021-06-09*rdd编程初级实践(代码片段)
RDD编程初级实践一、数据来源描述pyspark交互式编程科任老师提供分析数据data.txt,该数据集包含了某大学计算机系的成绩,数据格式如下所示:Tom,DataBase,80Tom,Algorithm,50Tom,DataStructure,60Jim,DataBase,90Jim,Algorithm,60Jim,DataStruct... 查看详情
实验5sparksql编程初级实践
SparkSQL基本操作 (1)查询所有数据; (2)查询所有数据,并去除重复的数据; (3)查询所有数据,打印时去除id字段; (4)筛选出age>30的记录; (5)将数据按age分组; (6)将数据按name升序排列; (7)取出前3行数... 查看详情
sparksql编程初级实践
今下午在课上没有将实验做完,课下进行了补充,最终完成。下面附上厦门大学数据库实验室中spark实验官网提供的标准答案,以供参考。 三、实验内容和要求1.SparkSQL基本操作 将下列json数据复制到你的ubuntu系统/usr/loca... 查看详情
实验5mapreduce初级编程实践——编写程序实现对输入文件的排序(代码片段)
一、实验目的通过实验掌握基本的MapReduce编程方法;掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。二、实验平台操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04)Hadoop版本ÿ... 查看详情
大数据hadoop实验报告(代码片段)
文章目录实验一熟悉常用的Linux操作和Hadoop操作1.实验目的2.实验平台3.实验内容和要求实验二熟悉常用的HDFS操作1.实验目的2.实验平台3.实验步骤实验三熟悉常用的HBase操作1.实验目的2.实验平台3.实验步骤实验四MapReduce/Spark编程初... 查看详情
大数据hadoop实验报告(代码片段)
文章目录实验一熟悉常用的Linux操作和Hadoop操作1.实验目的2.实验平台3.实验内容和要求实验二熟悉常用的HDFS操作1.实验目的2.实验平台3.实验步骤实验三熟悉常用的HBase操作1.实验目的2.实验平台3.实验步骤实验四MapReduce/Spark编程初... 查看详情
rdd编程初级实践
RDD编程初级实践一、实验目的(1)熟悉Spark的RDD基本操作及键值对操作;(2)熟悉使用RDD编程解决实际具体问题的方法。二、实验平台操作系统:Ubuntu16.04Spark版本:2.4.0Python版本:3.4.3三、实验内... 查看详情