如何从pyspark中的行中的数组中提取元素

时间:2019-06-26 17:22:00

标签: python pandas pyspark databricks

我有以下类型的数据框

col1|col2|col3|col4
xxxx|yyyy|zzzz|[, 111, por-BR, 2222]

我希望我的输出遵循以下类型

+----+----+----+-----+
|col1|col2|col3|col4 |
+----+----+----+-----+
|  xx|  yy|  zz| 1111|
|  xx|  yy|  zz| 2222|
+----+----+----+-----+

col4是一个数组,我想出现在同一列(或不同列)中,但是在一个列上

以下是我的实际架构:

data1:pyspark.sql.dataframe.DataFrame
    col1:string
    col2:string
    col3:string
    col4:array
        element:struct
            colDept:string

我设法做到了以下

df = df.withColumn("col5", df["col4"].getItem(1)).withColumn("col4", df["col4"].getItem(0))
df.show()

+----+----+----+----+----+
|col1|col2|col3|col4|col5|
+----+----+----+----+----+
|  xx|  yy|  zz|1111|2222|
+----+----+----+----+----+

但是我想这样是否可以帮助您?

#+----+----+----+-----+
#|col1|col2|col3|col4 |
#+----+----+----+-----+
#|  xx|  yy|  zz| 1111|
#|  xx|  yy|  zz| 2222|
#+----+----+----+-----+

0 个答案:

没有答案