gpt4 book ai didi

python - 使用数组的数组分解列 - PySpark

转载 作者:太空宇宙 更新时间:2023-11-03 14:50:14 26 4
gpt4 key购买 nike

我有一列包含这样的数据:

[[[-77.1082606, 38.935738]] ,Point] 

我希望它像这样拆分:

  column 1          column 2        column 3
-77.1082606 38.935738 Point

这怎么可能使用 PySpark 或 Scala (Databricks 3.0)?我知道如何分解列但不拆分这些结构。谢谢!!!

编辑:这是列的架构:

|-- geometry: struct (nullable = true)
| |-- coordinates: string (nullable = false)
| |-- type: string (nullable = false

最佳答案

您可以使用 regexp_replace() 去掉方括号,然后 split() 将得到的字符串按逗号分成单独的列。

from pyspark.sql.functions import regexp_replace, split, col

df.select(regexp_replace(df.geometry.coordinates, "[\[\]]", "").alias("coordinates"),
df.geometry.type.alias("col3")) \
.withColumn("arr", split(col("coordinates"), "\\,")) \
.select(col("arr")[0].alias("col1"),
col("arr")[1].alias("col2"),
"col3") \
.drop("arr") \
.show(truncate = False)
+-----------+----------+-----+
|col1 |col2 |col3 |
+-----------+----------+-----+
|-77.1082606| 38.935738|Point|
+-----------+----------+-----+

关于python - 使用数组的数组分解列 - PySpark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46331102/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com