如何选择Pyspark列并将其作为新行添加到数据框中?

问题描述 投票:0回答:1

我有一个JSON文件,我想执行一些ETL任务。我想提取一列并将其值附加为数据框中的新行。例如,如果我有一个像这样的数据框:

-----------------------------------------------------------------
|name    |    last    |                  father                 |
-----------------------------------------------------------------
| daniel |  allardice | {'name': 'george', 'last': 'allardice'} |
-----------------------------------------------------------------

我想把它变成:

----------------------------
|    name    |    last     |
----------------------------
|   daniel   |  allardice  |
----------------------------
|   george   |  allardice  |
----------------------------

如何通过PySpark中的UDF执行此操作?

apache-spark pyspark pyspark-sql pyspark-dataframes
1个回答
0
投票

您可以尝试以下代码吗?>

from pyspark.sql import functions as F

df_1 = df.select("name","last");

df_2 = df.select(F.col('father').getItem('name').alias('name'), F.col('father')['last'].alias('last'));

result = df_1.union(df_2);
© www.soinside.com 2019 - 2024. All rights reserved.