Comment créer un fichier udf dans PySpark qui retourne un tableau de chaînes de caractères?

J'ai une fonction qui retourne une liste de chaînes de caractères. cela ne devrait pas être trop dur. Je passe dans le type de données lors de l'exécution de l'udf depuis, elle retourne un tableau de chaînes de caractères: ArrayType(StringType).

Maintenant, de toute façon ce n'est pas de travail:

le dataframe je suis d'exploitation sur est df_subsets_concat et ressemble à ceci:

df_subsets_concat.show(3,False)
+----------------------+
|col1                  |
+----------------------+
|oculunt               |
|predistposed          |
|incredulous           |
+----------------------+
only showing top 3 rows

et le code est

from pyspark.sql.types import ArrayType, FloatType, StringType

my_udf = lambda domain: ['s','n']
label_udf = udf(my_udf, ArrayType(StringType))
df_subsets_concat_with_md = df_subsets_concat.withColumn('subset', label_udf(df_subsets_concat.col1))

et le résultat est

/usr/lib/spark/python/pyspark/sql/types.py in __init__(self, elementType, containsNull)
    288         False
    289         """
--> 290         assert isinstance(elementType, DataType), "elementType should be DataType"
    291         self.elementType = elementType
    292         self.containsNull = containsNull

AssertionError: elementType should be DataType

C'est ma compréhension que c'était la bonne façon de le faire. Voici quelques ressources:
pySpark Trames de Données "d'affirmer isinstance(type de données, Type de données), "type de données doit être de Type de données"
Comment retourner un "Tuple de type" dans un fichier UDF dans PySpark?

Mais aucun de ces m'ont aidé à résoudre pourquoi cela ne fonctionne pas. je suis à l'aide de pyspark 1.6.1.

Comment créer un fichier udf dans pyspark qui retourne un tableau de chaînes de caractères?

InformationsquelleAutor Hunle | 2017-12-06