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?
Vous devez vous connecter pour publier un commentaire.
Vous devez initialiser un
StringType
exemple: