【发布时间】:2022-01-22 20:04:33
【问题描述】:
尝试为整个 azure synapse 管道配置 spark,发现 Spark session config magic command 和 How to set Spark / Pyspark custom configs in Synapse Workspace spark pool 。 %%configuremagic 命令适用于单个笔记本。示例:
在笔记本开头插入包含以下内容的单元格
%%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 管道中的第一个活动,会发生什么情况是执行该笔记本的 Apache Spark 应用程序具有正确的配置,但管道中的其余笔记本回退到默认配置。
如何为整个管道配置 spark ?我应该在管道中的每个笔记本中复制%%configure .. 上方的粘贴还是有更好的方法?
【问题讨论】:
-
如果您希望整个管道的配置相同,为什么不将其设为默认配置,这样您就不需要额外的配置单元。仅当您希望它对任何边缘或特定情况有所不同时,才应使用此
%%configure。 -
@NikunjKakadiya 感谢您的回复。好吧,1)直接将配置文件上传到 Spark Pool 似乎不起作用,因为正如上面链接的文章所说,Azure Synapse 用默认配置覆盖了其中一些配置。 2)我想说一个管道的一种配置和另一个管道的另一种配置。你知道如何实现吗?
标签: apache-spark pyspark azure-synapse