Apache Spark Azure Synapse -从2个管道并行运行同一个笔记本

b1payxdu  于 2023-05-01  发布在  Apache
关注(0)|答案(1)|浏览(165)

我有一个Azure Synapse工作区和一个 * 小 * Spark池。我以这样一种方式编写代码,即连接到同一个spark池的同一个spark notebook将根据我从Synapse管道传递的参数被多次调用。
现在的问题是两个管道同时启动,但notebook活动按顺序运行,导致第二个示例“排队”,如下所示-

我如何使它并行,以便我的笔记本电脑在不同的管道启动的时间?更多信息-
笔记本代码-

import logging
import findspark
findspark.init()
findspark.find()
from pyspark.sql import SparkSession
from data_mesh_etl import table1, table2

spark = SparkSession.builder \
    .appName("MyApp") \
    .config("spark.jars.packages", "com.microsoft.sqlserver:mssql-jdbc:9.4.1.jre11,org.apache.hadoop:hadoop-azure:3.3.1") \
    .getOrCreate()

spark.conf.set('spark.sql.caseSensitive', True)
spark.conf.set('spark.sql.debug.maxToStringFields', 3000)

logger = logging.getLogger()
logger.setLevel(logging.INFO)

if p_table_name == 'table1':
    table1.load_table1_data_into_sql(spark, logger)

if p_table_name == 'table2':
    table2.load_table2_data_into_sql(spark, logger)

我从pipeline_table1传递参数p_table_name,值为table1,从pipeline_table2传递参数p_table_name,值为table2。当这两个管道同时启动时,我的笔记本不应该有两个并行运行的示例吗?Spark有没有什么并发设置我在这里遗漏了?
有人能帮忙吗?
TIA!
桑吉·凯尔卡

8xiog9wr

8xiog9wr1#

回答我自己的问题在这里-我得到了它的工作,通过简单地增加大小的Spark池。请参阅所附的屏幕截图,其中4个spark作业定义被同时调用,并且它们并行运行。

注意-在这里我已经尝试了spark作业定义,但同样的事情也适用于笔记本电脑。
谢谢大家!
桑吉·凯尔卡

相关问题