0

我用一個函數創建了python文件(python_file.py),然後在同一範圍內的pyspark-shell中將該函數調用爲UDF。該代碼如下Pyspark - AttributeError:'UserDefinedFunction'對象沒有屬性'_get_object_id'

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

這導致

AttributeError的: '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函數引起的錯誤不是註冊暫時或永久 –

相關問題