Когда я использую UDF для работы со столбцами, возникает проблема - PullRequest
0 голосов
/ 19 мая 2019

Когда я использовал UDF для обработки столбца, я не уверен, что UDF обрабатывает элемент один за другим из этого столбца?Если это так, я не могу понять, почему возникает проблема.

import pyspark.sql.types as typ
from pyspark.sql.functions import udf,pandas_udf, PandasUDFType
def parse_model(v):
    return v.split(' ')
Parse_model=pandas_udf(parse_model,typ.ArrayType(typ.StringType(),True))
sample_data_df.withColumn('Models',Parse_model('Model')).show(

В столбце должна быть строка, а не серия.

AttributeError: 'Series' object has no attribute 'split'

1 Ответ

0 голосов
/ 20 мая 2019

Пользовательская функция Скалярных Панд принимает pandas.Series и возвращает результат как pandas.Series.

Поскольку v относится к типу Series, вы получаете сообщение об ошибке. Обновление udf, как показано ниже, решит проблему.

def parse_model(v): 
   return pd.Series([v[0].split(' ')])
...