我有一个Dataframe,其模式如下:
root
|-- field_a: string (nullable = true)
|-- field_b: integer (nullable = true)
我想在我的数据框中添加一个嵌套列,这样:
root
|-- field_a: string (nullable = true)
|-- field_b: integer (nullable = true)
|-- field_c: struct (nullable = true)
| |-- subfield_a: integer (nullable = true)
| |-- subfield_b: integer (nullable = true)
如何在Pypark中实现这一点?
1条答案
按热度按时间cyej8jka1#
实际上有两种选择,一种是声明一个新模式并嵌套
pyspark.sql.types.StructField
,或您使用pyspark.sql.functions.struct
具体如下:现在,给定
tada
是一个StructType
,您可以使用[...]
符号如下:打印模式还总结了:
nb1:代替
f.col(...)
要获取现有列,可以使用任何其他返回pyspark.sql.functions.Column
,例如f.lit()
. nb2:使用时f.col(...)
,可以看到现有的列类型将被继承。希望这有帮助!