尝试为整个 azure 突触管道配置 spark,发现 Spark session config magic command和 How to set Spark / Pyspark custom configs in Synapse Workspace spark pool . %%configure
魔术命令适用于单个 笔记本。示例:
在笔记本的开头插入包含以下内容的单元格
%%configure -f
{
"driverMemory": "28g",
"driverCores": 4,
"executorMemory": "32g",
"executorCores": 4,
"numExecutors" : 5
}
然后下面发出预期值。
spark_executor_instances = spark.conf.get("spark.executor.instances")
print(f"spark.executor.instances {spark_executor_instances}")
spark_executor_memory = spark.conf.get("spark.executor.memory")
print(f"spark.executor.memory {spark_executor_memory}")
spark_driver_memory = spark.conf.get("spark.driver.memory")
print(f"spark.driver.memory {spark_driver_memory}")
虽然如果我将该笔记本添加为 Azure Synapse Pipeline 中的第一个事件,会发生的情况是执行该笔记本的 Apache Spark 应用程序具有正确的配置,但管道中的其余笔记本会回退到默认配置。
如何为整个管道配置 spark?我应该在管道中的每个笔记本中复制 %%configure ..
上方的粘贴还是有更好的方法?
最佳答案
是的,这是众所周知的选项 AFAIK。您需要在每个笔记本的开头定义 %%configure -f
以覆盖作业的默认设置。
或者,您可以尝试遍历 Azure 门户上的 Spark 池,并通过上传如下所示的文本文件来设置 spark 池中的配置:
请引用这个third-party article了解更多详情。
此外,看起来不能为执行程序或驱动程序指定少于 4 个内核。如果这样做,您将获得 1 个核心,但仍会保留 4 个核心。
关于apache-spark - Azure 突触 Apache Spark : Pipeline level spark configuration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70434797/