在Python类型提示(PyCharm)中区分PySpark和Pandas数据帧

在Python类型提示(PyCharm)中区分PySpark和Pandas数据帧,python,pandas,pycharm,type-hinting,Python,Pandas,Pycharm,Type Hinting,在PyCharm中,如果使用pyspark.sql.DataFrame代替pandas.DataFrame,类型提示似乎不会触发警告,反之亦然 e、 g.以下代码根本不会生成任何警告: from pyspark.sql import DataFrame as SparkDataFrame from pandas import DataFrame as PandasDataFrame def test_pandas_to_spark(a: PandasDataFrame) -> Spark

在PyCharm中,如果使用
pyspark.sql.DataFrame
代替
pandas.DataFrame,类型提示似乎不会触发警告,反之亦然

e、 g.以下代码根本不会生成任何警告:

from pyspark.sql import DataFrame as SparkDataFrame
from pandas import DataFrame as PandasDataFrame

def test_pandas_to_spark(a: PandasDataFrame) -> SparkDataFrame:
    return a

def test_spark_to_pandas(b: SparkDataFrame) -> PandasDataFrame:
    return b.toPandas()

test_spark_to_pandas(PandasDataFrame({'a': [1, 2, 3]}))
这是已知的/可以修复的吗


顺便说一句:我确实安装了pyspark存根:
pyspark存根==2.4.0.post2

,这似乎是意料之中的。Pandas本身和Typeshed都没有为
Pandas.core.frame.DataFrame
提供类型提示,因此类型检查器将无法确定
PandasDataFrame({'a':[1,2,3]})
.Hmm的类型,这太可惜了。有没有办法在导入时手动添加它们?熊猫很难注释。有一些正在进行的工作,但这是公平的完成。您可以尝试创建一个虚拟的
partial
包,它只覆盖
DataFrame
模块。