背景 使用spark执行mapPartitionsWithIndex((index,iterator)=>{....}),在执行体中将iterator进行一次迭代后,再次根据iterator执行迭代,iterator迭代体未执行. 猜想及验证过程 猜测iterator只能执行一次迭代. 测试例子如下: val rdd1 = sc.makeRDD(1 to 10,2) val rdd2 = rdd1.mapPartitionsWithIndex{(index,iterator)=>{ var r…
实例代码 while read line ; do ssh -p20002 $line -o StrictHostKeyChecking=no xxxxxxxxx done < ip.txt while 只循环一次原因: while 读取文本的第一行,然后执行循环,执行到ssh这部时,因为ssh会读取标准输入(stdin),把所有文本都读取了,因此while没有数据,便跳出循环. 解决方法: 在ssh中使用 -n 参数: -n Redirects stdin from /dev/null (ac…
Scala中的 apply 方法有着不同的含义, 对于函数来说该方法意味着调用function本身, 以下说明摘自Programming in Scala, 3rd Edition Every function value is an instance of some class that extends one of several FunctionN traits in package scala, such as Function0 for functions with no parame…
我们知道scala中一切皆为对象,函数也是对象,数字也是对象,它是一个比java还要面向对象的语言. 定义scala的简单类 class Point (val x:Int, val y:Int) 上面一行代码就是一个scala类的定义: 首先是关键字class 其后是类名 Point 类名之后的括号中是构造函数的参数列表,这里相当于定义了对象的两个常量,其名称分别为x,y,类型都是Int 上面的类和下面的类是一致的,不过更精简了. class Point (xArg:Int, yArg:Int)…
今天学习了scala中的路径依赖,来看一下实战代码 class Outer{ private val x = 10 class Inner{ private val y = x +10 }} 这里定义了一个外部类Outer,Outer里定义了私有的成员x.同时定义了内部类Inner,内部类里定义了私有成员y. 在这里,内部类Inner可以访问外部类的私有成员x,而外部类不能访问内部类Inner的私有成员y. 继续看这段代码: object test52{ def main(args…