A:自定义排序方法一
import OrderContext._
val rdd2 = rdd1.sortBy(x => Girl(x._2, x._3), false) //自定义排序的规则
println(rdd2.collect().toBuffer)
sc.stop()
case class Girl(val faceValue: Int, val age: Int) extends Ordered[Girl] with Serializable { //因为要走网络
override def compare(that: Girl): Int = {
if(this.faceValue == that.faceValue) {
that.age - this.age
} else {
this.faceValue -that.faceValue
}
}
}
自定义排序方法二:通过隐式转换
B:查询IP归属地:某个运营商提供特定的IP地址段。
IpDemo.scala
/ 批量查询是
IPLocation.scala
例如:阿里巴巴运营商提供的IP地址段 120.55.0.0|120.55.255.255|2016870400|2016935935|亚洲|中国|浙江|杭州||阿里巴巴|330100|China|CN|120.153576|30.287459
val ip = "120.55.185.61"
val ipNum = ip2Long(ip)//转成10进制
println(ipNum)
val lines = readData("c:/ip.txt") //所查询的数据库
val index = binarySearch(lines, ipNum)
print(lines(index))
①二分法查询:必须要求数据已经保存
C:
查询IP归属地。
操作数据库,将数据写入关系型数据
IPLocation2.scala
D:wordcount的执行流程
wordcount提交到集群的操作
val conf = new SparkConf().setAppName("WC")
.setJars(Array("C:\\HelloSpark\\target\\hello-spark-1.0.jar")).setMaster("spark://server:7077")
val sc = new SparkContext(conf)