我有一个JSON文件,我想执行一些ETL任务。我想提取一列并将其值附加为数据框中的新行。例如,如果我有一个像这样的数据框:
-----------------------------------------------------------------
|name | last | father |
-----------------------------------------------------------------
| daniel | allardice | {'name': 'george', 'last': 'allardice'} |
-----------------------------------------------------------------
我想把它变成:
----------------------------
| name | last |
----------------------------
| daniel | allardice |
----------------------------
| george | allardice |
----------------------------
如何通过PySpark中的UDF执行此操作?
您可以尝试以下代码吗?>
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);