bar*_*ssa 5 pyspark mypy python-3.7
我有一个类,它需要一个Spark DataFrame并对其进行一些处理。这是代码:
for column in self.sdf.columns:
if column not in self.__columns:
row = [column]
row += '--' * 9
column_table.append(row)
Run Code Online (Sandbox Code Playgroud)
我在我的类的构造函数中有这个代码:
self.sdf: Optional[SparkDataFrame] = None
Run Code Online (Sandbox Code Playgroud)
这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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1726 次 |
| 最近记录: |