更改复杂(数组和结构)列的类型spark

时间:2018-05-23 22:16:34

标签: python scala apache-spark

我有一个包含以下架构的Dataframe:

root
 |-- id: long (nullable = true)
 |-- ... (other columns)
 |-- my_array_col: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- col_a: string (nullable = true)
 |    |    |-- col_b: date (nullable = true)

如何将col_b的类型更改为StringType?

1 个答案:

答案 0 :(得分:1)

您可以使用强制转换运算符强制转换任意深度的数组和结构列,如下所示:

.withColumn("my_array_col", col("my_array_col")
    .cast("array<struct<col_a: string, col_b: string>>")