Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法初始化Python类中的spark对象_Python_Apache Spark_Pyspark - Fatal编程技术网

无法初始化Python类中的spark对象

无法初始化Python类中的spark对象,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,我在delta_interface_logids.py文件中创建了sparkSession对象,如下所示: from loader.LoadRunner import LoadRunner from pyspark import SparkConf from pyspark.sql import SparkSession import pyspark.sql.functions as F def get_data(spark): do_something_with_spark

我在
delta_interface_logids.py
文件中创建了sparkSession对象,如下所示:

from loader.LoadRunner import LoadRunner
from pyspark import SparkConf
from pyspark.sql import SparkSession
import pyspark.sql.functions as F


def get_data(spark):
    do_something_with_spark
    return something


if __name__ == "__main__":
    max_interface_log_id_dict = {}
    sparkConf = SparkConf().setAppName("DummyAP").set("spark.jars", "/home/usrname/jars/postgresql-42.1.4.jar ")
    spark = SparkSession.builder.config(conf=sparkConf).enableHiveSupport().getOrCreate()
    log_data = get_data(spark)
    load = LoadRunner(spark)
我在变量
log\u data
中有
get\u data()
的输出&我试图用Python实现一个类,该类接受
log\u data
并执行一些操作。为此,我创建了一个类,如下所示:

但是当我尝试使用spark对象的功能时,我发现spark对象没有正确初始化,因为我没有看到sparkSession对象生成的方法:
spark
,我在屏幕截图中看到的
\uuu init\uuu
方法中初始化了它

我在这里是否犯了错误,没有正确地看到spark对象的方法?
如何从文件:
delta\u interface\u logids.py
中正确地将spark对象发送和初始化到类
LoadRunner
,我想在定义类时,编辑器无法知道spark是哪种对象。仅仅因为您将类参数命名为
spark
,并不一定意味着您的代码将处理
SparkSession
对象

这是动态语言固有的“问题”(许多引用)。函数参数在运行时之外没有类型。当您使用编辑器定义类时,您肯定不在运行时

额外的 对于任何使用Python>3.5的人,我强烈建议使用。这些注释有助于改进代码文档,并且可以使用工具(如)进行静态检查

例如,在上面的代码中,我建议如下:

def __init__(self, spark: SparkSession):
    ...

我理解你想说的,但在这种情况下,项目中的任何地方和文件中都没有gaurantee,IDE将识别我用于生成其方法的对象类型。代码没有问题吗?@Metadata,到目前为止,您的代码没有问题。@Metadata,如果您使用的是Python>3.5,我强烈建议您使用类型批注。这解决了问题,但是如果有人使用的版本低于3.5,看起来他们必须信任自己的编码能力,少一点依赖IDE。Python3.4已经远远超过了它的寿命。Spark具有非常好的性能,可以独立于版本使用。