您的位置:首页 > 其它

IDEA的auto import 与 Scala的隐式转换

2015-03-05 23:08 489 查看
设置IDEA的auto import 之后,编写Spark应用程序时的一些自动导入情况及其说明。

1.普通类的自动导入

var cnames = new ArrayBuffer[String]()
var ips = new ArrayBuffer[String]()
直接根据提示alt+enter便可以导入ArrayBuffer类包

2.需要隐式转换
val joinRDD = reqRDD.join(respRDD).map(x
=> (x._2._1, x._2._2)).reduceByKey((x, y) => x)

joinRDD.collect.foreach(println)

此时需要导入语句

import
org.apache.spark.SparkContext._

需要手动导入,个人理解:在这里reduceByKey方法在idea中并不能判断出其属于哪个类,所以idea便不能给出提示需要导入哪个类。

需要先将隐式转换放入作用域,才会对类型进行转换。

在spark1.1.0版本中,隐式类型转换的函数定义在SparkContext里面;隐式类型转换如果定义在自己的类中,作用于就是自己,如果定义在其他类里,需要把这个类引入,否则不会自动转换。

而在spark1.3.0中,隐式类型转换的函数被定义在了RDD里面,所以在同样在写程序时,spark1.1.0时可能不会有提示,所以需要手动导入import
org.apache.spark.SparkContext._。而依赖spark1.3.0时,就会有提示,不用手动导入RDD类了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  scala spark