Как разделить строки в dataframe, используя pandas_udf в pyspark - PullRequest
0 голосов
/ 03 октября 2019

У меня есть dataframe только из одного столбца. Я хотел бы разбить строку, используя pandas_udf в pyspark. Следовательно, у меня есть следующий код:

from pyspark.sql.functions import pandas_udf, PandasUDFType

@pandas_udf('str')
def split_msg(string):
  msg_ = string.split(" ")
  return msg_

temp = temp.select("_c6").withColumn("decoded", 
split_msg(temp._c6)).drop("_c6")

Но это не работает.

любая помощь очень ценится !!

1 Ответ

1 голос
/ 03 октября 2019

Измените вашу функцию следующим образом:

@pandas_udf('array<string>', PandasUDFType.SCALAR) 
def split_msg(string): 
    msg_ = string.str.split(" ") 
    return msg_ 

В основном ваша функция returnType должна быть массивом StringType (), а аргумент string должен быть Series, и поэтому вам потребуется string.str.split(" ")

Однако, если вы просто хотите разделить текст, API DataFrame Spark предоставляет встроенную функцию pyspark.sql.functions.split , которая должна быть более эффективной, чем использование pandas_udf

...