AttributeError:函数的对象没有属性

使用受保护的关键字从DataFrame API列名的结果在一个函数对象没有属性的错误消息。

写的noopur.nigam

去年发表在:2022年5月19日

问题

你选择从DataFrame列,你得到一个错误消息。

错误:AttributeError:“函数”对象没有属性“_get_object_id”工作

导致

DataFrame API包含少量的保护关键字。

如果一列DataFrame使用受保护的关键字作为列名称,你将得到一个错误消息。

例如,总结是一个受保护的关键字。如果使用汇总列名称,您将看到错误消息。

这个示例代码使用总结作为一个列名和运行时生成错误消息。

% python df =火花。createDataFrame ([1, 2],“int”) .toDF (" id ") df.show pyspark.sql ()。类型进口StructType、StructField StringType, IntegerType df1 =火花。createDataFrame([(10),(11),(13日)],StructType ([StructField(“摘要”,IntegerType(),真的))))df1.show () ResultDf = df1。加入(df df1。总结= = df。id、“内在”).select (df.id df1.summary) ResultDf.show ()

解决方案

不应该使用DataFrame API保护关键字列名。

如果你必须使用保护的关键字,您应该使用支架基础从DataFrame列访问在选择列。不要使用点符号在选择列使用受保护的关键字。

python ResultDf = df1 %。(“摘要”)加入(df df1 df = =。id、“内在”).select (df.id df1(“摘要”))


这篇文章有用吗?