Pyspark Ошибка, возникающая на низкочастотных категориях, комбинирующих код - PullRequest
0 голосов
/ 08 января 2019

Теперь я получаю еще одну ошибку при создании функции udf в pyspark. Поле «Код категории продавца» в моих данных имеет очень большой размер. Я хочу уменьшить его категории. Мой подход ко всем категориям этого поля с количеством менее 1000. Я хочу назначить новую категорию (MCC_lowcount).

Но выдает ошибку ниже последней строки кода ниже

Error: TypeError: Invalid argument, not a string or column: 1000 of type <class 'int'>. 
For column literals, use 'lit', 'array', 'struct' or 'create_map' function.  

Код:

def cut_levels(x, threshold, new_value):
        value_counts = x1.value_counts()
        labels = value_counts.index[value_counts < threshold]
        x[np.in1d(x, labels)] = new_value
    udf_cut_levels=udf(cut_levels,StringType())
    udf_cut_levels(df1['Merchant Category Code'], 1000, 'MCC_lowcount')
...