[英]Get Hashtable/Map from Spark Dataframe Column stored as binary(serialized Hashtable) in SQL Server 2016 using Apache Spark 2.4
在其中一個遺留應用程序中,在 DB - SQL Server 2016 中,我們有一個表 - 度量
它有 15+ 列,其中一列是二進制的
當我加載到 Spark 並打印架構時,它的二進制文件
scala> jdbcDF.printSchema()
root
|-- measurementValues: binary (nullable = true)
|-- measure: string (nullable = true)
看起來,他們使用了Hashtable ,將其序列化並作為二進制存儲到 Table Column 中
我正在嘗試將相同的反序列化回哈希表(或)映射(或)某些集合,以便在執行 ETL 操作時能夠轉換為 JSON 格式
有人可以幫忙嗎? 我試圖將二進制文件轉換為字符串,但仍然沒有用:(
val convertToString = udf((a: Array[Byte])=> new String(a))
def deserializeBinary = udf((x: Array[Byte]) => {
val stream: InputStream = new ByteArrayInputStream(x);
val obs = new ObjectInputStream(stream)
val stock = obs.readObject.asInstanceOf[util.Hashtable[String, String]]
stock
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.