Python类中Pyspark流水线的性能

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

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

  1. def read_table():
  2. def perform_tansforms():
  3. def perform_further_transforms():
  4. def run_pipeline():
  5. read_table()
  6. perform_tansforms()
  7. perform_further_transforms()

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

  1. class CustomPipeline():
  2. class_variable_1 = "some_variable"
  3. class_variable_2 = "another_variable"
  4. @staticmethod
  5. def read_table():
  6. @staticmethod
  7. def perform_tansforms():
  8. @staticmethod
  9. def perform_further_transforms():
  10. @staticmethod
  11. def run():
  12. CustomPipeline.read_table()
  13. CustomPipeline.perform_tansforms()
  14. CustomPipeline.perform_further_transforms()

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

lmvvr0a8

lmvvr0a81#

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

相关问题