转自:https://blog.csdn.net/YSC1123/article/details/78905090

1.Character.isDigit()

判断是否为数字

2.Character.isLetter():

判断是否为字母

3.ToList.takeWhile(x=>x != B):

takeWhile的判断结果是Boolean,只要x值不等于B,则继续取;否则停止取元素的操作

4.map函数:

是对当前集合中每个元素进行映射的操作,这个函数可以理解成把当前数据整理成Java中的map格式,key->value

5.通配符的使用

在scala中我们使用_作为通配符,使用时它可以代表当前集合或者数据集中所有值,比如:a.filter(_ % 2==1),这里的通配符表示的意思就是:在集合a中,满足“元素除以2等于1”的所有数据获取出来。

6.flatmap和map:

   map的返回值与原来的集合返回值是一样的
   flatmap:把原来集合里所有的数据都转换成一个list里,不区分原来的集合是有多少层的嵌套;flatmap通俗来讲,就是将map中的所有值平铺,成为一个集合。例如:如果数据集中有三个list,每个list中有不同的结果,对当前数据集进行flatmap之后,得到新的结果集就是三个list中所有数据并组成一个list集合。

7.Range和Until

    Range形成一个序列,使用<初始值to 终点值 by 步阶>,可以在循环时指定变量的取值范围:
    1 to 10 结果是 x>= 1 && x<=10
    1 until 10 结果是x>= 1 && x<10

8.Tupple

    Tupplea是spark中的元组,我们可以把元组理解成多个元素构成一行,Tupple可以有多行也可以只有一行,比如Tupple中存储数据:((1,“Alice”,“Math”,90),(2,“Bob”,“Math”,98),……),所以当函数有多个返回值,我们就可以使用Tupple将函数的所有返回值都封装起来。但需要注意的是,使用Tupple封装的数据格式中都带有(),所以在打印或者输出文件时,我们需要将这些小括号去掉或者不输出。

9.加减运算

    scala 中使用+= 1 和-= 1来表示递增和递减,不存在++ 和--
    scala中可以使用* 实现Java中的x.multiply(x).multiply(x)的运算

10.scala的运算函数

   通过import scala.math._   就可以使用scala中的运算函数,比如sqrt() ,pow()--求平方
   注:scala中不存在静态方法,但是有个类似的特性叫单例对象;

11.变量声明

   Scala有两种变量声明方式,val和var。val就不能再赋值了。与之对应的,var可以在它生命周期中被多次赋值。

12.String操作函数

  1. //获取首字符
  2. "Hello"(0)
  3. "Hello".take(1)
  4. //获取尾字符
  5. "Hello".reverse(0)
  6. "Hello".takeRight(1)

相同的列表基本操作:take取前n个元素,drop舍弃前n个元素,head取第一个元素,tail取第一个元素后的剩余元素列表,init取除了最后一个元素的列表,last取最后一个元素。

13.返回值设置

   在scala中如果不设置返回值类型,可以直接省略Unit和=,直接在参数之后接花括号。

14.for (……) yield

   在循环时创建了一个和原始集合相同的新集合

15.Option、None、Some

   为了让所有东西都是对象的目标更加一致,也为了遵循函数式编程的习惯,Scala鼓励你在变量和函数返回值可能不会引用任何值的时候使用Option类型。在没有值的时候,使用None,这是Option的一个子类。如果有值可以引用,就使用Some来包含这个值。Some也是Option的子类。

16.mapValues

   def mapValues[U](f: (V) => U): RDD[(K, U)]
   同基本转换操作中的map,只不过mapValues是针对[K,V]中的V值进行map操作。
  1. val fileresult = sc.textFile("******")
  2. .map { line =>
  3. val arr = line.split(",")
  4. (arr(0), arr(1), arr(2))
  5. }
  6. .groupBy(_._1)
  7. .mapValues(tripple => column.map(key => tripple.find(_._2 == key).map(_._3).getOrElse("0")))
  8. .map(x => s"${x._1},${x._2}")

BigData进阶--Spark中的函数与符号的更多相关文章

  1. MATLAB中匿名函数与符号函数的转换

    符号函数举例: syms x y=x+1; y1=diff(y); %求导 匿名函数举例: z=@(x)(x(1)+2*x(2)); t=z([2 3]); %计算z在x=[2 3]处的值 z=@(x ...

  2. 关于spark中DatatFrame函数操作中isin方法的使用

    需求: 1.需要从一张mysql数据表中获取并筛选数据 2.通过spark将该表读进来,形成一个df:DataFrame,有一个集合 val list = List[String]("小李& ...

  3. Spark中Java函数的使用方法笔记

    1: map 函数map是对RDD中的每个元素都执行一个指定的函数来产生一个新的RDD. 任何原RDD中的元素在新RDD中都有且只有一个元素与之对应. 2: mapPartitions函数</p ...

  4. hive中标准偏差函数stddev()详细讲解

    1.标准偏差概念 标准偏差(Std Dev,Standard Deviation) -统计学名词.一种度量数据分布的分散程度之标准,用以衡量数据值偏离算术平均值的程度.标准偏差越小,这些值偏离平均值就 ...

  5. Scala 深入浅出实战经典 第42讲:scala 泛型类,泛型函数,泛型在spark中的广泛应用

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  6. day11.1函数进阶 列表集合 字典中的函数变量,函数作为形参

    函数进阶 1.函数作为变量 a=123 name="gao" nums=[1,2,3] data=nums#指向同一个内存地址 #查看内存地址篇章 def func(): prin ...

  7. Spark中的IsNotNull函数怎么用

    Spark中的IsNotNull函数怎么用 在这里看到的这个函数,就是判断是否为空,但是开始不知道怎么用,后来找到了,要在View中用,也就是SparkSQL中.如下: spark.sql(" ...

  8. 在Spark中尽量少使用GroupByKey函数(转)

    原文链接:在Spark中尽量少使用GroupByKey函数 为什么建议尽量在Spark中少用GroupByKey,让我们看一下使用两种不同的方式去计算单词的个数,第一种方式使用reduceByKey  ...

  9. js进阶js中支持正则的四个常用字符串函数(search march replace split)

    js进阶js中支持正则的四个常用字符串函数(search march replace split) 一.总结 代码中详细四个函数的用法 search march replace split 二.js进 ...

随机推荐

  1. Towers of Hanoi Strike Back (URAL 2029)

    Problem The Tower of Hanoi puzzle was invented by French mathematician Édouard Lucas in the second h ...

  2. Django基础之cookie

    1. Cookie 1.1 Cookie的由来 大家都知道HTTP协议是无状态的.无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系, 它不会受前面的请求响应情况 ...

  3. Mybatis源码学习之整体架构(一)

    简述 关于ORM的定义,我们引用了一下百度百科给出的定义,总体来说ORM就是提供给开发人员API,方便操作关系型数据库的,封装了对数据库操作的过程,同时提供对象与数据之间的映射功能,解放了开发人员对访 ...

  4. oracle面试题1

    1.题目要求 已知关系模式:S (SNO,SNAME)学生关系.SNO 为学号,SNAME 为姓名C (CNO,CNAME,CTEACHER)课程关系.CNO 为课程号,CNAME 为课程名,CTEA ...

  5. node.js获取ip及mac

    ; (function (win) { var os = require('os'); var ifaces = os.networkInterfaces(); function NetworkUti ...

  6. IDEA如何切换到括号外

    一般我们输入完括号后都会习惯性Enter或者Shift + Enter切换到括号外,结果却变成了: public void nothing() Enter → public void nothing( ...

  7. cv常用名词缩写

    lr:learning rate roi:region of interest,可能包含目标的区域. wd:weight decay fps:frame per second,每秒几帧 fine tu ...

  8. QTcpSocket 发送数据的几种方法

    1.QTcpSocket 继承于QAbstractSocket继承于QIODevice 2.QTcpSocket 提供的几种接收和发送数据方法 write ( const char *, qint64 ...

  9. [Java]简单计算下一段Java代码段运行了多少秒

    long startTime = System.currentTimeMillis(); ...... long endTime = System.currentTimeMillis(); logge ...

  10. 数据库 | SQL语法优化方法及实例详解

    使用复合索引 如果经常执行如上查询,那么建立三个单独索引不如建立一个复合索引,因为三个单独索引通常数据库每次执行只能使用其中一个,虽然这样比不使用索引而进行全表扫描提高了很多效率,但使用复合索引因为索 ...