AttributeError:函數的對象沒有屬性
導致
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。總結= =df。id,“內心”)。選擇(df。id,df1。總結)ResultDf。顯示()
解決方案
不應該使用DataFrame API保護關鍵字列名。
如果你必須使用保護的關鍵字,您應該使用支架基礎從DataFrame列訪問在選擇列。不要使用點符號在選擇列使用受保護的關鍵字。
ResultDf=df1。加入(df,df1(“摘要”]= =df。id,“內心”)。選擇(df。id,df1(“摘要”])