是否有可能 运行 火花(特别是 pyspark)在进程中?
Is possible to run spark (specifically pyspark) in process?
当 运行 执行 pyspark 作业时,启动开销很大。
是否可以 运行 'lightweight' 不使用外部守护进程的作业?
(主要用于小数据集测试)
更新
我的回答不再正确。
现在有pysparkling个项目提供
A pure Python implementation of Spark's RDD interface. With the goal to remove the dependency on the JVM and Hadoop.
它仍然是早期版本 - 但它可以让您 运行 您的 PySpark 应用程序具有纯 Python。但是 YMMV - Spark API 发展很快,而 pysparkling 可能没有实现所有最新的 API。
我仍然会使用完整的 PySpark 进行测试 - 以确保我的应用程序在我的目标平台 - Apache Spark 上正常工作。
上一个回答
不,没有办法 运行 仅将 Spark 作为单个 Python 进程。 PySpark 只是 Scale 代码之上的 API 薄层。后者应该在 JVM 内部 运行。
我的公司是 PySpark 的重度用户,我们 运行 持续对 Spark 作业进行单元测试。 运行在本地模式下运行 Spark 作业时没有太多开销。它确实启动了 JVM,但它比我们对 Pig 代码的旧测试快了一个数量级。
如果您有很多任务要 运行(即许多单元测试),您可以尝试重用 Spark 上下文 - 这将减少为每个测试用例启动守护进程所花费的时间。请记住,在这种情况下,您需要在每个测试用例之后进行清理(即,如果您的程序缓存了一些 rdds,则取消持久化)。
在我们公司,我们决定为每个测试用例启动新的 Spark 上下文 - 暂时保持它们干净。 运行 本地模式下的 Spark 对我们来说已经足够快了,至少现在是这样。
当 运行 执行 pyspark 作业时,启动开销很大。 是否可以 运行 'lightweight' 不使用外部守护进程的作业? (主要用于小数据集测试)
更新
我的回答不再正确。
现在有pysparkling个项目提供
A pure Python implementation of Spark's RDD interface. With the goal to remove the dependency on the JVM and Hadoop.
它仍然是早期版本 - 但它可以让您 运行 您的 PySpark 应用程序具有纯 Python。但是 YMMV - Spark API 发展很快,而 pysparkling 可能没有实现所有最新的 API。
我仍然会使用完整的 PySpark 进行测试 - 以确保我的应用程序在我的目标平台 - Apache Spark 上正常工作。
上一个回答
不,没有办法 运行 仅将 Spark 作为单个 Python 进程。 PySpark 只是 Scale 代码之上的 API 薄层。后者应该在 JVM 内部 运行。
我的公司是 PySpark 的重度用户,我们 运行 持续对 Spark 作业进行单元测试。 运行在本地模式下运行 Spark 作业时没有太多开销。它确实启动了 JVM,但它比我们对 Pig 代码的旧测试快了一个数量级。
如果您有很多任务要 运行(即许多单元测试),您可以尝试重用 Spark 上下文 - 这将减少为每个测试用例启动守护进程所花费的时间。请记住,在这种情况下,您需要在每个测试用例之后进行清理(即,如果您的程序缓存了一些 rdds,则取消持久化)。
在我们公司,我们决定为每个测试用例启动新的 Spark 上下文 - 暂时保持它们干净。 运行 本地模式下的 Spark 对我们来说已经足够快了,至少现在是这样。