Scala 大数据 常用算法收集

Posted CodeArt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala 大数据 常用算法收集相关的知识,希望对你有一定的参考价值。

一:IP转数字,用于比大小,用在求IP段范围中

  def ip2Long(ip: String): Long = {
    val fragments = ip.split("[.]")
    var ipNum = 0L
    for (i <- 0 until fragments.length){
      ipNum =  fragments(i).toLong | ipNum << 8L
    }
    ipNum
  }

二:二分法 查找某一IP段所属范围

  def binarySearch(lines: Array[(Long, Long, String)], ip: Long) : Int = {
    var low = 0
    var high = lines.length - 1
    while (low <= high) {
      val middle = (low + high) / 2
      if ((ip >= lines(middle)._1) && (ip <= lines(middle)._2))
        return middle
      if (ip < lines(middle)._1)
        high = middle - 1
      else {
        low = middle + 1
      }
    }
    -1
  }

 

以上是关于Scala 大数据 常用算法收集的主要内容,如果未能解决你的问题,请参考以下文章

2021年大数据常用语言Scala(十四):基础语法学习 数组  重点掌握

大数据之scala常用函数总结

2021年大数据常用语言Scala:Scala开发环境安装

2021年大数据常用语言Scala(三十四):scala高级用法 异常处理

常用Javascript代码片段集锦

2021年大数据常用语言Scala:基础语法学习 方法