如何 select Pyspark 列并将其作为新行附加到数据框中?
How to select a Pyspark column and append it as new rows in the data frame?
我有一个 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);
我有一个 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);