转自: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. 积性函数,线性筛入门 HDU - 2879

    HDU - 2879HeHe 题意:He[N]为[0,N−1]范围内有多少个数满足式子x2≡x (mod N),求HeHe[N]=He[1]×……×He[N] 我是通过打表发现的he[x]=2k,k为 ...

  2. assert 笔记

    目录 什么是assert? assert使用 assert错误使用 什么是assert? Python 的 assert 语句是一个 debug 的好工具,主要用于测试一个条件是否满足.如果测试的条件 ...

  3. 2019.6.20 校内测试 NOIP模拟 Day 1 分析+题解

    这次是zay神仙给我们出的NOIP模拟题,不得不说好难啊QwQ,又倒数了~ T1 大美江湖 这个题是一个简单的模拟题.   ----zay 唯一的坑点就是打怪的时候计算向上取整时,如果用ceil函数一 ...

  4. BDD行为驱动简介及Pytest-bdd基础使用

    目录 BDD介绍 需求描述/用户场景 场景解析/实现 场景测试 Pytest-bdd的参数化 运行环境: pip insall pytest pytest-bdd pytest-selenium BD ...

  5. Django基础之request对象

    当一个页面被请求时,django就会创建一个包含本次请求原信息的HttpRequest对象. django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用request参数承接这个对象 ...

  6. nuxt使用教程

    1 引言 Nuxt 是基于 Vue 的前端开发框架,这次我们通过 Introduction toNuxtJS 视频了解框架特色以及前端开发框架的基本要素. nuxt 与 next 结构很像,可以结合在 ...

  7. oracle面试题1

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

  8. elasticsearch利用head插件

    restful接口使用方法 RESTful接口URL的格式: http://localhost:9200///[] 其中index.type是必须提供的. id是可选的,不提供es会自动生成. ind ...

  9. 网络编程udp入门

    老师布置的作业 echo4_server.c #include<stdio.h> #include<stdlib.h> #include<string.h> #in ...

  10. Java通过过滤器修改header

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...