0

関数を使用してpythonファイル(python_file.py)を作成し、同じスコープ内でpyspark-shellのUDFとして関数を呼び出しました。それはPyspark - AttributeError: 'UserDefinedFunction'オブジェクトに '_get_object_id'属性がありません

はAttributeErrorが生じ

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

次のようにコードがある: 'UserDefinedFunction' オブジェクトには、属性を持っていないエラー '_get_object_id'。

誰でも私にエラーを説明してください。これを行う方法は他にありますか?

答えて

0

私たちが従わなければならない。このcode.whileクエリデータフレームスパークSQLがフォーマット

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

どのようにこれはに関連しないを与えているとあなたは試してみてくださいすることができ質問?それは本当に問題を解決しますか? –

+0

はい。私も、この質問のようにデータフレームを照会しようとしているときに同じ問題に直面していました - > "df1 = df.select(pyspark_func(col( 'col1'))))"とエラーはユーザ定義のudf funtion一時的または恒久的 –

関連する問題