如何将Spark SQL行对象序列化为字节数组?

时间:2018-08-18 16:53:21

标签: apache-spark apache-spark-sql

我有一个火花sql Row对象及其StructType作为架构。如何将其序列化为Array[Byte]

我试图将此对象写入字节流,因为我看到Row类型扩展了Serializable。但是我认为效率不高,因为未使用架构,因此结果可能并不紧凑。

1 个答案:

答案 0 :(得分:-1)

您可以使用方法Row.getAs[T](fieldName:String),例如:

// generate a row
val df = Seq(Array(1.toByte)).toDF("bytes")
val row = df.collect().head
// extract field 
val arr: Array[Byte] = row.getAs[Array[Byte]]("bytes")