Tôi có cấu trúc DataFrame phức tạp và muốn vô hiệu một cột dễ dàng. Tôi đã tạo ra các lớp ngầm định rằng chức năng dây và dễ dàng giải quyết các cấu trúc 2D DataFrame nhưng một khi DataFrame trở nên phức tạp hơn với ArrayType hoặc MapType, tôi đã không có nhiều may mắn. Ví dụ:Làm cách nào để sửa đổi một Khung dữ liệu Spark có cấu trúc lồng nhau phức tạp?
Tôi đã schema định nghĩa là:
StructType(
StructField(name,StringType,true),
StructField(data,ArrayType(
StructType(
StructField(name,StringType,true),
StructField(values,
MapType(StringType,StringType,true),
true)
),
true
),
true)
)
Tôi muốn tạo ra một DF mới có lĩnh vực data.value
của maptype thiết lập để null, nhưng vì đây là một phần tử của một mảng tôi đã không thể tìm ra cách. Tôi nghĩ rằng nó sẽ là tương tự như:
df.withColumn("data.values", functions.array(functions.lit(null)))
nhưng điều này cuối cùng tạo ra một cột mới của data.values
và không thay đổi các yếu tố values
của mảng dữ liệu.