我有一个班级,需要一个 Spark DataFrame
并对其做一些处理。下面是代码。
for column in self.sdf.columns:
if column not in self.__columns:
row = [column]
row += '--' * 9
column_table.append(row)
我在我的类的构造函数里有这段代码。
self.sdf: Optional[SparkDataFrame] = None
这里 sdf
是在执行我的类时动态设置的,然后上面提到的for循环就会运行。__columns
是一个字典,里面应该有sdf的所有列。当它运行时,我发现代码中没有错误。但是当我用 mypy
在for循环的第一行就出现了错误。
error: Item "None" of "Optional[Any]" has no attribute "columns"
我知道最初的sdf将是 None
. 但我是否应该认为这是一个严重的错误?有什么变通的办法吗?
是的。columns
你可以找到更多的信息。此处 .当你设置self.sdf为None时,你会得到你发布的错误信息。
from pyspark.sql import DataFrame
if self.sdf is not None and isinstance(self.sdf,DataFrame):
for column in self.sdf.columns:
if column not in self.__columns:
row = [column]
row += '--' * 9
column_table.append(row)