问题描述
root
|-- binary_col1: binary (nullable = true)
我根据需要使用
进行转换val ds2 = ds1.map(row => row.getAs[Array[Byte]]("binary_col1"))
但是当数据集有两列二进制类型时如何转换数据集?
root
|-- binary_col1: binary (nullable = true)
-- binary_col2: binary (nullable = false)
我想创建 2 列的新数据集
( binary_col1.toByteArray,binary_col2.toByteArray)
解决方法
您可以在数据帧/数据集上使用 as
,并提供 tuple2 类型:
val ds2 = ds1.as[(Array[Byte],Array[Byte])]
这比使用 map
更好,因为它保留了列名。
当然,您也可以使用map
,例如
val ds2 = ds1.map(row => (row.getAs[Array[Byte]]("binary_col1"),row.getAs[Array[Byte]]("binary_col2")))