为什么我们需要在Spark中分发文件,例如--py-文件?

时间:2017-04-01 04:09:05

标签: python apache-spark pyspark spark-streaming

当我从SO中的许多博客和帖子中读到时,例如this one(在前几段中),引用如下:

  

不要涉及太多细节,但是当你运行不同时   转换RDD(map,flatMap,filter等),你的   转换代码(闭包)是:

     
      
  1. 在驱动程序节点上序列化,
  2.   
  3. 发送到群集中的相应节点,
  4.   
  5. 反序列化,
  6.   
  7. 最后在节点上执行
  8.   

好的,这是我对此的看法:

我在驱动程序中定义了一些自定义转换/操作函数,然后这些自定义函数将序列化到所有执行程序以运行作业。

那么将额外的py文件发送到所有节点有什么意义呢?由于执行者需要的所有内容都会被序列化,所以这里到底发生了什么?

1 个答案:

答案 0 :(得分:0)

不确定,但使用spark 2.x和DataFrame API来避免序列化并将scala代码发送到您的节点,而无需在节点上处理额外的python容器。