Python类中Pyspark流水线的性能

of1yzvn4  于 2023-01-01  发布在  Spark
关注(0)|答案(1)|浏览(241)

我有一个在Databricks上运行的pyspark管道。一个管道基本上是一个序列中执行的许多函数,它们是阅读/创建表、连接、转换等(即常见的spark东西)。因此,例如,它可能是如下所示的东西:

def read_table():

def perform_tansforms():

def perform_further_transforms():

def run_pipeline():
    read_table()
    perform_tansforms()
    perform_further_transforms()

现在,为了更好地构建代码,我将管道的常量和函数封装到一个类中,该类包含静态方法和run方法,如下所示:

class CustomPipeline():
    
    class_variable_1 = "some_variable"
    class_variable_2 = "another_variable"

    @staticmethod
    def read_table():

    @staticmethod
    def perform_tansforms():

    @staticmethod
    def perform_further_transforms():

    @staticmethod
    def run():
        CustomPipeline.read_table()
        CustomPipeline.perform_tansforms()
        CustomPipeline.perform_further_transforms()

现在,这可能是一个愚蠢的问题,但从概念上讲,这会以任何方式影响管道的性能吗?例如,将管道的各个部分封装到类中可能会导致从Python解释器到运行Spark的JVM的通信的一些额外开销。
任何帮助都是感激的,谢谢。另外,如果需要任何其他细节,请评论。

lmvvr0a8

lmvvr0a81#

不是直接的,不,没关系。
我想这可能很重要,例如,你的类有一堆初始化,执行了每一步的所有初始化,不管执行了哪一步,但是我在这里没有看到。
这在Spark和Databricks上没有什么不同。

相关问题