
untypd操作案例:计算部门平均年龄与薪资
需求:只统计年龄在20岁以上的员工根据部门名称和员工性别为粒度来进行统计统计出每个部门分性别的平均薪资和年龄Scala代码示例package cn.study.spark2 import org.apache.spark.sql.SparkSession /** * 计算部门的平均薪资和年龄 * * 需求: * 1、只统计年龄在20岁以上的员工...
需求:只统计年龄在20岁以上的员工根据部门名称和员工性别为粒度来进行统计统计出每个部门分性别的平均薪资和年龄Scala代码示例package cn.study.spark2 import org.apache.spark.sql.SparkSession /** * 计算部门的平均薪资和年龄 * * 需求: * 1、只统计年龄在20岁以上的员工...
SparkSQLSparkSQLSpark SQL是Spark的一个模块,主要用于处理结构化的数据。与基础的Spark RDD API不同的是,Spark SQL的接口会向提供更多的信息,包括数据结构以及要执行的计算操作等。在Spark SQL内部,会使用这些信息执行一些额外的优化。使用Spark SQL有两种方式,包括SQL语句以及Dataset API。但是在计算的时候,无论你是用哪种接口去进行...
mapval scoreMap = Map("leo" -> 90, "jack" -> 60, "tom" -> 70) val names = List("leo", "jack", "tom") names.map(scoreMap(_))flatmapval scoreMap = Map(&qu...
集合元素操作操作功能作用于col :+ ele将元素添加到集合尾部Seqele +: col将元素添加到集合头部Seqcol + ele在集合尾部添加元素Set、Mapcol + (ele1, ele2)将其他集合添加到集合的尾部Set、Mapcol - ele将元素从集合中删除Set、Map、ArrayBuffercol - (ele1, ele2)将子集合从集合中删除Set、Map、ArrayBuffercol1 ++ col2将其他集合添加到集合...
Scala中xml基础操作scala中定义xmlscala对xml有很好的支持,可以直接在scala代码中定义一个xml文档元素val books = my first scala book此时doc的类型是scala.xml.Elem,也就是一个xml元素scala还可以直接定义多个同级别的xml元素val books = my first scala bookmy first&...
什么是注解注解其实说白了,就是在我们的代码中,加入一些特殊的标记特殊的标记大概长什么样子呢?我们之前学过一个很常用,和很经典的一个注解,其实就是@BeanProperty,让编译器自动生成属性的JavaBean风格的getter和setter方法 除此之外,还在文件操作那一讲,讲过一个序列化的这个东西,@SerialVersionUID,指定一个序列化的版本号注解是...
提取器就是一个包含了unapply方法的对象,跟apply方法正好相反apply方法,是接收一堆参数,然后构造出来一个对象unapply方法,是接收一个字符串,然后解析出对象的属性值apply方法伴生类和伴生对象的概念,companion class和companion object伴生对象里面,可以定义一个apply方法直接调用类(参数),方式,就相当于在调用apply方法此时在apply...
正则表达式是什么?一种语法,用一个表达式,来匹配一系列的字符串[a-z]+: 一个或多个a~z范围的26个小写英文字母,比如hello,worldscala对这个正则表达式的支持定义一个正则表达式,使用String类的r方法此时返回的类型是scala.util.matching.Regex类的对象val pattern1 = "[a-z]+".r拿到一个正则表达式以后,我们一...
偏函数,是一种高级的函数形式简单来说,偏函数是什么,其实就是没有定义好明确的输入参数的函数,函数体就是一连串的case语句// 一般的函数 def getStudentGrade(name: String) = { ... }偏函数是PartialFunction[A, B]类的一个实例这个类有两个方法,一个是apply()方法,直接调用可以通过函数体内的case进行匹...
遍历一个文件中的每一行必须导入scala.io.Source类: import scala.io.Source方法一: 使用Source.getLines返回的迭代器val source = Source.fromFile("test.txt", "UTF-8") val lineIterator = source.getLines for (line <- lineIterator) println(lin...