【发布时间】:2021-06-23 16:10:40
【问题描述】:
我有一个名为 requests 的列,它属于 ArrayType,其中包含一些字段,例如 code、value 等
StructField(requests,ArrayType(StructType(StructField(code,IntegerType,true), StructField(value,DoubleType,true) .....)
比如[[1, 5.0....], [2, 0, ....]] 等等。
如何只收集数组中的 code 字段,以便只得到 [1,2....]?我对requests 中的其他字段不感兴趣。
我尝试使用 array_zip 但这没有帮助:
val result = df.withColumn("new_col", arrays_zip(col("requests.code")))
我必须使用explode 吗?或者这可能使用高阶函数吗?提前致谢!
【问题讨论】:
标签: scala apache-spark pyspark apache-spark-sql