0

J'ai créé un fichier python (python_file.py) avec une fonction, puis j'ai appelé la fonction en UDF dans pyspark-shell dans la même portée. Le code est le suivantPyspark - AttributeError: l'objet 'UserDefinedFunction' n'a pas d'attribut '_get_object_id'

import python_file as outer 
pyspark_func = udf(outer.my_funct, StringType()) 
df1 = df.select(pyspark_func(col('col1'))) 

Il a donné lieu à

AttributeError: objet 'UserDefinedFunction' n'a pas d'attribut '_get_object_id' erreur.

Quelqu'un peut-il s'il vous plaît m'expliquer l'erreur. Et y a-t-il un autre moyen de le faire?

Répondre

0

Pouvez-vous s'il vous plaît essayer cette requête code.while Spark dataframe Sql que nous devons suivre a donné le format

Actual Data

+--------+---+----+ 
| date| id|name| 
+--------+---+----+ 
| 05FEB12|101|John| 
| 19APR13|102|Mike| 
|19APR17s|103|Anni| 
+--------+---+----+ 

UDF Creation and Registration

def userDefinedMethod(sample): 
    return sample+"is my Name" 

userDefinedMethod = udf(userDefinedMethod, StringType()) 

**dataDf.select(dataDf["id"],dataDf["name"],userDefinedMethod(dataDf["name"]).alias("Modified name")).show()** 

Resultant Output:

+---+-----------------+ 
| id|Incremental value| 
+---+-----------------+ 
|101| Johnis my Name| 
|102| Mikeis my Name| 
|103| Anniis my Name| 
+---+-----------------+ 
+0

Comment est-ce lié à la question? Est-ce que cela résout vraiment le problème? –

+0

Oui. Même j'ai fait face au même problème quand j'essaye de questionner le cadre de données en utilisant comme cette requête -> "df1 = df.select (pyspark_func (col ('col1')))" et l'erreur causée en raison de ud utilisateur défini ne sont pas enregistrent temporellement ou permanent –