是否可以运行spark(特别是pyspark)?

时间:2015-06-09 18:22:36

标签: apache-spark pyspark

在运行pyspark工作时,会有很大的启动开销。 是否可以运行轻量级'不使用外部守护进程的工作? (主要用于测试小数据集)

1 个答案:

答案 0 :(得分:1)

<强>更新

我的回答不再适用。

现在有pysparkling项目提供

  

Spark的RDD接口的纯Python实现。目标是消除对JVM和Hadoop的依赖。

它仍然是早期版本 - 但它允许您使用纯Python运行PySpark应用程序。但YMMV - Spark API发展迅速,而且pysparkling可能没有实现所有最新的API。

我仍然会使用完整的PySpark进行测试 - 确保我的应用程序在我的目标平台上运行 - Apache Spark。

上一个回答

不,没有办法只将Spark作为单个Python进程运行。 PySpark只是Scale代码之上的瘦API层。后者应该在JVM内部运行。

我的公司是PySpark的重要用户,我们不断对火花作业进行单元测试。在本地模式下运行Spark作业时没有那么多开销。它确实启动了JVM,但它比我们旧的Pig代码测试快了一个数量级。

如果您要运行许多任务(即许多单元测试),您可以尝试重用Spark Context - 这将减少为每个测试用例启动守护程序所花费的时间。请记住,在这种情况下,您需要在每个测试用例之后进行清理(例如,如果您的程序缓存了某些rdds,则为unpersist)。

在我们公司,我们决定为每个测试用例启动新的Spark Context - 现在让它们保持干净。至少在目前,以本地模式运行Spark对我们来说足够快。