2017-01-09 9 views
2

Я читаю данные из Hbase, используя искру, и UUID в Hbase находится в двоичном формате, и я хочу преобразовать этот двоичный тип UUID в обычный UUID в scala. Кто-нибудь знает, как это можно сделать?Как преобразовать двоичный UUID в UUID в scala?

+0

Вы можете подтвердить полное пространство имен для HBase UUID и регулярной Scala UUID (например, они оба java.util.UUID)? – Woodz

+0

Независимо от того, какой сериализатор использовался для сериализации данных в HBase ... используйте соответствующий десериализатор. –

+0

, если вы использовали java.util.UUID во время записи в HBase, вы не должны сталкиваться с проблемой при его сериализации, используя тот же пакет. –

ответ

0

Ниже приведен код для решения вопроса.

def touuid(a: Array[Byte]): String = 
{ 
    val bb = ByteBuffer.wrap(a) 
    val high = bb.getLong(); 
    val low = bb.getLong(); 
    val uuid = new UUID(high, low); 
    return uuid.toString() 
} 

val havid = udf((x: Array[Byte]) => touuid(x)) 
Смежные вопросы