Spark简介

这篇博客介绍了Scala语言的基础知识,包括Any超类、AnyVal和AnyRef的区别,以及var和val的用法。文章还讲解了Scala中的元组、列表操作、函数和对象的区别,以及如何使用map、filter和reduce等函数。此外,文章还提到了Spark的使用,涉及排序、数据处理和列表操作。最后,博客探讨了Scala的伴生对象和构造器的概念。
摘要由CSDN通过智能技术生成

这里写自定义Spark目录标题

欢迎使用Markdown编辑器

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt
Spark
Scala是一门 多范式,的语言,运行在虚拟机上,并且兼容java的程序,所以 才能 在 jvm上,

Any超类,
AnyRef:引用类型的父亲(List,String,Seq,Iterable)底层的 空为Null,
AnyVal(Double,Float,Long,Int,Short,Byte,Char,Boolean,Unit,):value Nothing为Any的 空。

object 因为 有 main方法 所以 就是 选object.
var 表示 变量,val 表是常量。
s string, f ,format 格式化。都是在 def format():{}中 使用, 表 示 获 取 , 在 函 数 体 外 , 表示 获取,在函数体外, 表示 获取此函数,
如果在函数体内,表示 获取此变量,在 程序中,var是可以改变的,val 是不可以改变的。

Scala Class,和object class 的区别,在Scala class中,main方法 执行不了,
问题 在static上,因为某些场景需要static,只要写在object中 就会默认有static,
var :修饰的 变量 相当于Java的定义的一个变量,并且有get,set方法,
val: 修饰的 变量 相当于Java的定义的一个变量,并且只有get方法。
如果变量是由private修饰的,那么只能在本各类中运行,不能在其他类中运行,如果加上[this]修饰 访问权限 会更小。

元组:由不同的类型数据组合到一起叫做元祖,
原组中的的 调用,直接 变量名调用 名点-1,就是 原组中的 第一位,以此类推,也可以 用productArity 是元素的个数,类名点productElement(),原组中的 位数,从第几个开始,用这个 就是 元祖中下标 都是 1,底层是 1 是为了 凸显出自己个性,规定,

map ,相同的定义Java * =scala_相当于 通配符,
var Map =mzf.map(_ *2)
map 按照一定的 规则将所有的元素进行转化 操作

排序 sortWith(>)排序,按照自然地数序排序,
sortby :自定义 排序,
filter : 过滤 从多少 过滤 ,filter(_>2),

yield :表示按照一定的的规则 将所有的循环结果 保存在 一个 新的 变量中count:是按照 一定的 逻辑计算 计算 逻辑的 计算的 个数 。
var kount =sz.count(_>4)

拉链;zip

var name=Array(1,2,3,4,5)
var classname=Array(“hadoop”,“spark”,“core java”,“redis”,“rabbittmp”)

var lalie=name.zip(classname)
for (jjj<- lalie){
printle(lalie)
}

数组 反转 :sz.reverse

函数不依靠与类或者对象去调用,方法依赖,函数的定义有=>标志。

def mzf(): Unit ={
/var a =scala.math.max(15,12)
println(a)
/
var f=(x:Int)=> x*2
println(f(10))
var sz=Array(1,2,3,45,5,56,20)
var b=sz.sortBy(x=>x)

for (c<- b){
  println(c)
}

}
def main(args: Array[String]): Unit = {
mzf()
}

list 的操作 系统,max,min,sortby,sortwith,map…

var list=List(1,2,3,4)
var max=list.max
println(max)

/元祖List/函数

list.slice:截取数字,(a,b)a是下标,b是个数

var studentList=List((“mzf”,85),(“mzm”,90),(“mxg”,100))
var sort=studentList.sortBy(x=>x.2)//降序在x前 -
sort.foreach(println(
))

//map按照一定的规则进行全部操作,批量操作,
//flatmap//按照一定的规则,将所有的数据进行压缩,然后操作。

var list=List(“two tiger two tiger”,“one has not tail one without”,“how”)
var a=list.flatMap(.split(" "))
a.foreach(println(
))
var mapList =a.map(x=>(x,1))
println(“aaaaaaaaaa元祖转化”)
mapList.foreach(println(_))
//按照 元祖中的 第一个 进行分类
var fenzu=mapList.groupBy(x=>(x.1))
fenzu.foreach(println(
))
var abc =fenzu.map(x=>(x._1,x.2.length))
abc.foreach(println(
))

特殊操作,对于reducer fold 的特殊讲解,
var listabc=List(1,2,3)
var reducer=listabc.reduce(+)
var reducer1=listabc.reduce(-)
//reducer=reducerleft reducerright 相反
var reducer2=listabc.reduce(_ max _)

var reducer3=listabc.reduceRight(_ - _)
//flod  有初始值,从初始值 开始。
var reducer4 =listabc.fold(100)(_ + _)
//从右开始减去
var reducer5 =listabc.foldRight(100)(_ - _)
println(reducer5)

=============================================================
list //还有 head与tail的 意思。比如
var list=List(“hello”,“hello 1”,“hello 2”)
var head=list.head
var tail=list.tail

.:?)谁在 括号里 谁就在前面
var list1=List(1,2,3)
var list2=List(“hello”)
var list3=list2.::(list1)
list3.foreach(println(_))

++ 该方法用于两个集合的 相加,
:::该方法 只能用于连接 两个List类型的结合,
:+方法用于在尾部追加元素,+:方法用于在头部追加元素。
::该方法 被称为你 cons ,以为 构造,相对列的头部追加数据,创造新的列表。

var td =List(1,2,3,4)
var tf=td.:+(“mzf”)
println(tf)
输出形式是(1,2,3,4,mzf)
var td1 =List(1,2,3,4)
var td =

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值