2
我正在使用spark從Hbase讀取數據,並且Hbase中的UUID是二進制格式,我想將該二進制類型的UUID轉換爲scala中的常規UUID。任何人都知道該怎麼辦?如何將二進制UUID轉換爲scala中的UUID?
我正在使用spark從Hbase讀取數據,並且Hbase中的UUID是二進制格式,我想將該二進制類型的UUID轉換爲scala中的常規UUID。任何人都知道該怎麼辦?如何將二進制UUID轉換爲scala中的UUID?
下面是解決問題的代碼。
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))
,你能否證實爲HBase的UUID和定期斯卡拉UUID完整的命名空間(例如,是它們都java.util.UUID中)? – Woodz
無論使用什麼串行器將數據序列化到HBase中,請使用相應的解串器。 –
如果您在寫入HBase的同時使用java.util.UUID,則在使用相同包的序列化過程中應該沒有問題 –