AttributeError:函數的對象沒有屬性

問題

你選擇從DataFrame列,你得到一個錯誤消息。

錯誤:AttributeError:“函數”對象沒有屬性“_get_object_id”工作

導致

DataFrame API包含少量的保護關鍵字。

如果一列DataFrame使用受保護的關鍵字作為列名稱,你將得到一個錯誤消息。

例如,總結是一個受保護的關鍵字。如果使用彙總列名稱,您將看到錯誤消息。

這個示例代碼使用總結作為一個列名和運行時生成錯誤消息。

df=火花createDataFrame([1,2),“int”)toDF(“id”)df顯示()pyspark.sql.types進口StructType,StructField,StringType,IntegerTypedf1=火花createDataFrame(((10),(11),(13),StructType([StructField(“摘要”,IntegerType(),真正的))))df1顯示()ResultDf=df1加入(df,df1總結= =dfid,“內心”)選擇(dfid,df1總結)ResultDf顯示()

解決方案

不應該使用DataFrame API保護關鍵字列名。

如果你必須使用保護的關鍵字,您應該使用支架基礎從DataFrame列訪問在選擇列。不要使用點符號在選擇列使用受保護的關鍵字。

ResultDf=df1加入(df,df1(“摘要”]= =dfid,“內心”)選擇(dfid,df1(“摘要”])