scala—如何将Dataframe的每一列从二进制数组转换为字节数组

yr9zkbsy  于 2021-07-09  发布在  Spark
关注(0)|答案(1)|浏览(411)

我有一个数据集ds1,其模式如下

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)

我想用两列创建新的数据集
(二进制\u col1.tobytearray,二进制\u col2.tobytearray)

mzaanser

mzaanser1#

你可以用 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")))

相关问题