繁体   English   中英

在 Palantir Foundry 的代码工作簿中如何分配执行者?

[英]How are executors assigned in Code Workbooks in Palantir Foundry?

我有两本代码工作簿。 如果我在工作簿 A 的 pyspark 中运行一个计算量大的转换并尝试在工作簿 B 中运行一些东西,两者都会永久排队,直到工作簿 A 中的构建停止,然后工作簿 B 中的构建立即运行,就好像它在等待在工作簿 A 中构建。

执行者是否在一个用户的所有代码工作簿上共享? 到底是怎么回事?

对于在 PalantirCloud 中运行的 Foundry,Executors 由 spark 配置设置设置并由 Rubix 管理。 这是为了保证执行时间的方差低于 YARN 中的固定资源(以及容器化等额外的 Rubix 安全功能)

由于 Foundry 中的权限是在项目级别设置的,如果用户在同一项目中使用相同的配置文件(相同的一组库和 spark 配置)运行(以交互模式)多个代码工作簿,则 SparkSession 将在两者之间共享两者节省计算资源。

您可以通过运行来检查火花 session

print(spark)
<pyspark.sql.session.SparkSession object at 0x7ffb605ef048>.

如果我在同一个项目中有另一个工作簿,我会得到相同的结果:

print(spark)
<pyspark.sql.session.SparkSession object at 0x7ffb605ef048>.

如果我在不同项目中有另一个工作簿使用相同的配置文件,我会得到不同的火花 session:

print(spark)
<pyspark.sql.session.SparkSession object at 0x7f45800df7f0>

如果它在不同的 SparkSession 中运行(并且不共享执行程序)很重要,那么用户可以对其中一个工作簿中的包进行轻微修改,或者创建另一个预热的 spark session 配置文件(而不是默认的一)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM