Как мне написать эквивалентный код pyspark для следующего состояния? - PullRequest
0 голосов
/ 30 января 2020
    X_train[var] = np.where(X_train[var].isin(frequent_ls), X_train[var], 'Rare')

Как заменить numpy функцией pyspark sql?

Ответы [ 2 ]

0 голосов
/ 30 января 2020

Вы можете просто использовать оператор. isin:

import pyspark.sql.functions as F

X_train = (X_train
           .withColumn(var, F.when(X_train[var].isin(frequent_ls), X_train[var]).otherwise('Rare'))
0 голосов
/ 30 января 2020

Вы определяете функцию udf

from spark.sql import function as F
from pyspark.sql.types import StringType()

def dictonnary(x):
    if x in frequent_ls: 
        return x 
    else:
        return "rare"

replace = F.udf(lambda x: dictionnary(x), StrungType())

Xtrain = xtrain.withColumn("var2", replace(F.col("var")))
...