scala 常用方法

 

1、take

 获取前n条记录

scala> val t = sc.parallelize(1  to 10)
t: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at <console>:27

scala> t.take(3)
res0: Array[Int] = Array(1, 2, 3)

 

2、reverse

反转列表

scala> val a  = Seq(1,2,3,6,4)
a: Seq[Int] = List(1, 2, 3, 6, 4)

scala> a.reverse
res6: Seq[Int] = List(4, 6, 3, 2, 1)

 

3、tail

获取列表去除行首

scala> a.tail
res7: Seq[Int] = List(2, 3, 6, 4)

 

4、filter

过滤

scala> val a  = Seq(1,2,3,6,4)
a: Seq[Int] = List(1, 2, 3, 6, 4)

scala>     val d = a.flatMap(f=>{
     |       try{
     |         Some(f/(f-1))
     |       }catch{
     |         case e:Exception=>None
     |       }
     |     }).filter(_>1)
d: Seq[Int] = List(2)

 

5、init

除去最后一个元素

scala> val t = sc.parallelize(1  to 10)
t: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[380] at parallelize at <console>:40

scala> val c = t.take(5)
c: Array[Int] = Array(1, 2, 3, 4, 5)

scala> val d = c.init
d: Array[Int] = Array(1, 2, 3, 4)

 

6、last

获取最后一个元素

scala> val t = sc.parallelize(1  to 10).take(3)
t: Array[Int] = Array(1, 2, 3)

scala> t.last
res55: Int = 3

 

7、randomSplit

数据分割

scala> c.take(10)
res64: Array[Array[Double]] = Array(Array(9.0, 21.0, 3.0, 4.0, 5.0, 1.0), Array(21.0, 3.0, 4.0, 21.0, 5.0, 2.0), Array(6.0, 12.0, 45.0, 32.0, 32.0, 3.0))

scala> val Array(trainData, cvData, testData) = c.randomSplit(Array(0.8, 0.1, 0.1))
trainData: org.apache.spark.rdd.RDD[Array[Double]] = MapPartitionsRDD[391] at randomSplit at <console>:50
cvData: org.apache.spark.rdd.RDD[Array[Double]] = MapPartitionsRDD[392] at randomSplit at <console>:50
testData: org.apache.spark.rdd.RDD[Array[Double]] = MapPartitionsRDD[393] at randomSplit at <console>:50

 

8、yield 生成集合

scala> for(i <- 1 to 10) yield i%3
res7: scala.collection.immutable.IndexedSeq[Int] = Vector(1, 2, 0, 1, 2, 0, 1, 2, 0, 1)

 

转载于:https://www.cnblogs.com/huanhuanang/p/7228092.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值