scala基础---spark编程基础

定义与使用数组

  1. new一个新数组

//var arr:Array[String] = new Array[String](3)

var z:Array[String] = new Array[String](3)

z(0) = "baidu"; z(1) = "google"; z(2) = "bing"

  1. 直接定义

//var arr:Array[String] = Array(元素1,元素2,......)

var z:Array[String] = Array("baidu","google","bing")
  1. 操作数组

//查看数组z的长度

print(z.length)

//查看数组z的第一个元素

print(z.head)

//查看z数组中除了第一个元素外的其他元素

print(z.tail)

//判断数组z是否为空

print(z.isEmpty)

//判断数组z是否包含元素"baiu"

print(z.contains("baidu"))
  1. 链接数组

//通过操作符"++"连接数组

val arr1 = Array(1,2,3)

val arr2 = Array(4,5,6)

val arr3 = arr1 ++ arr2

print(arr3)

//通过concat()方法连接数组

import Array._

val arr4 = concat(arr1,arr2)

print(arr4)

//创建区间数组,生成数组(1,3,5,7,9)

val arr5 = range(1,10,2)

print(arr5)

定义与使用函数

1.定义两个整数相加的代码

// 1

def add(a:Int,b:Int):Int = {a+b}

print(add)

// 2

def add(a:Int,b:Int):Int = {

  var sum = 0;

  sum = a+b;

  return sum

}

print(add)

2.匿名函数

//定义两个整数相加的匿名函数

(x:Int,y:Int)=>x+y

 //调用函数

 val addInt = (s:Int,y:Int)=>x+y

 //scala占位符例

 val addInt = (_:Int)+(_:Int)

 addInt(1,2)

3.高阶函数-函数作为参数

def addInt(f:(Int,Int)=>Int,a:Int,b:Int) = f(a,b)

addInt((a:Int,b:Int)=>a+b,1,2)
  1. 高阶函数-函数作为返回值

def rectangle(length:Double) = (height:Double)=>(length+height)*2

val func=rectangle(4)

println(func(5))
  1. 函数柯里化

//定义两个整数相加的函数

def addInt(a:Int,b:Int):Int = a+b

addInt(1,2)

//函数柯里化

def addInt(a:Int,b:Int):Int = a+b

addInt(1)(2)

if判断示例

//定义一个变量x,值为10

var x = 10

//使用if判断对变量的值进行判断并输出对应结果

if (x == 10){

  println("x的值为10")

}else if (x == 20){

  println("x的值为20")

}else{

  println("无法判断x的值")

}

使用for循环

//for循环嵌套输出元组

  var i,j = 0;

  for(i < -1 to 2){

    for(j < -1 to 2)

      println("(" + i + "," + j + ")")

  }
//for循环嵌套if判断示例

for(i <-1 to 10;if i%2 == 0; if i > 6){

  println(i)

}
//for...yield示例

var even = for(i<-1 to 10;if i%2 == 0)yield i

定义与使用列表

//定义String类型的列表

val fruit:List[String] = List("apple","pears","oranges")

//定义Int类型的列表

val nums:List[Int] = List(1,2,3,4,5)

//定义Double类型的列表

val double_nums:List[Double] = List(1.0,2.5,3.3)

//定义Nothing类型的列表

val empty:List[Nothing] = List()

//根据初值自动推断列表的数据类型

val fruit2 = List("apple","pears","oranges")

使用“Nil“和”::“定义列表

//定义String类型的列表

val fruit:List[String] = "apple"::"pears"::"oranges"::Nil

//定义Int类型的列表

val nums:List[Int] = 1::2::3::4::5::Nil

//定义Double类型的列表

val double_nums:List[Double] = 1.0::2.5::3.3::Nil

//定义Nothing类型的列表

val empty:List[Nothing] = Nil

常用的查看列表元素的方法示例

fruit.head

fruit.init

fruit.last

fruit.tail

fruit.take(2)

合并两个列表

val num1:List[Int] = List(1,2,3)

val num2:List[Int] = List(4,5,6)

num1:::num2

num1.:::(num2)

List.concat(num1,num2)

contains()方法

val num:List[Int] = List(1,2,3,4,5)

num.contains(3)

num.contains(6)

合并两个集合

val set1:Set[Int] = Set(1,2,3)

val set2:Set[Int] = Set(4,5,6)

set1.++(set2)

定义与使用映射

//定义映射

val person:Map[String,Int] = Map("John"->21,"Betty"->20,"Mike"->22)

//获取person所有的键和值

person.isEmpty

person.keys

person.values

代码用法

Set

val site= Set("Itcast","Google","Baidu")

    val nums:Set[Int]=Set()

    println("第一个网站是:"+site.head)

    println("最后一个网站是:"+site.tail)

    println("査看集合site是否为空:"+site.isEmpty)

    println("查看集合nums是否为空:"+nums.isEmpty)

    println("查看site的前两个网站:"+site.take(2))

Map(映射)

定义Map集合的语法格式如下:

var A:Map[Char,Int]= Map(键 ->值,键 ->值...)//Map键值对,键为Char,值为Int

//定义Map集合

val colors = Map("red" -> "#FF0000","azuer" -> "#F0FFF","peru" -> "#CD853F")

    //调用contions判断pru键是否存在

    val peruColor = if(colors.contains("peru")) colors("peru") else 0

    //

    val azureColors = colors.getOrElse("azure",0)

    println("获取colors中键为red的值:"+colors("red"))

    println("获取colors中所有的键:"+colors.keys)

    println("获取colors中所有的值:"+colors.values)

    println("获取colors是否为空:"+colors.isEmpty)

//flatten()方法
val list=List(List(1,2,3),List(4,5,6))
list.flatten
//Map()方法
val num:List[Int]=List(1,2,3,4,5)
num.map(x=>x*x)


读写文件

import java.io._

val pw = new PrintWriter(new File("/opt/text.txt"))

pw.println("I am learning Scala")

CSV文件的读取

CSV文件的存储

SequenceFile文件的存储

SequenceFile文件的读取

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值