2017-01-09 24 views
2

我正在使用spark從Hbase讀取數據,並且Hbase中的UUID是二進制格式,我想將該二進制類型的UUID轉換爲scala中的常規UUID。任何人都知道該怎麼辦?如何將二進制UUID轉換爲scala中的UUID?

+0

,你能否證實爲HBase的UUID和定期斯卡拉UUID完整的命名空間(例如,是它們都java.util.UUID中)? – Woodz

+0

無論使用什麼串行器將數據序列化到HBase中,請使用相應的解串器。 –

+0

如果您在寫入HBase的同時使用java.util.UUID,則在使用相同包的序列化過程中應該沒有問題 –

回答

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)) 
相關問題