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