Сводный стол и onehot в pyspark - PullRequest
0 голосов
/ 09 июля 2019

У меня есть фрейм данных Pyspark, который выглядит как -

id      age      cost     gender
1        38       230      M
2        40       832      M
3        53       987      F
1        38       764      M
4        63       872      F
5        21       763      F

Я хочу, чтобы мой фрейм данных выглядел как -

id      age      cost     gender    M       F
1        38       230      M        1       0
2        40       832      M        1       0
3        53       987      F        0       1
1        38       764      M        1       0
4        63       872      F        0       1
5        21       763      F        0       1
4        63      1872      F        0       1

Используя python, я могу управлять следующим образом -

final_df = pd.concat([df.drop(['gender'], axis=1), pd.get_dummies(df['gender'])], axis=1)

Как обойтись в писпарке?

1 Ответ

1 голос
/ 09 июля 2019

просто нужно добавить 2 столбца:

from pyspark.sql import functions as F
final_df = df.select(
    "id",
    "age",
    "cost",
    "gender",
    F.when(F.col("gender")==F.lit("M"),1).otherwise(0).alias("M"),
    F.when(F.col("gender")==F.lit("F"),1).otherwise(0).alias("F"),
)
...