spark scala 的一些数据预处理 进制转换 时间转换

1 进制转换:

将16进制转换成字节码

//每两位转成一位
    spark.udf.register("hexChar", (x: String) => {
        val sb = new StringBuilder
        for (i <- Range(0, x.length, 2)) {
          val output = x.substring(i, (i + 2))
          val decimal = Integer.parseInt(output, 16)
          sb.append(decimal.toChar)
        }
        sb.toString()
    })

16 -> 10 

val decimal = Integer.parseInt(hex, 16)
decimal

2 时间戳

scala 时间与时间戳转换 时间戳实际是秒

时间->时间戳

import java.text.SimpleDateFormat

def tranTimeToLong(tm:String) :Long={

    val fm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")

    val dt = fm.parse(tm)

    val aa = fm.format(dt)

    val tim: Long = dt.getTime()

    tim

  }

时间戳->时间 

 def tranTimeToString(tm:String) :String={
    val fm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
    val time = fm.format(new Date(timestamp.toLong))
    time
  }
//附加

spark substring(value,start,length)

spark sql case when 

,(case 字段 when '0' then '男' when '1' then '女' end) sex

你可能感兴趣的:(spark)