我是synapse分析的新手,我想创建一个笔记本,它可以进一步用作管道中的数据库,以便处理来自DB的其中一个表中的数据。
我想在PySpark中做所有的事情,所以我想知道如何使用notebook从现有的DB中读取数据。**注意:**我不想使用该方法,在该方法中,我提到了我的密码等。
spark = SparkSession.builder.appName("SynapseAnalyticsDemo").getOrCreate()
# Set up Synapse Analytics credentials
synapse_servername = "<synapse_servername>.sql.azuresynapse.net"
synapse_database = "<synapse_database>"
synapse_username = "<synapse_username>"
synapse_password = "<synapse_password>"
synapse_jdbc_url = f"jdbc:sqlserver://{synapse_servername}:1433;database={synapse_database};user={synapse_username};password={synapse_password}"
# Define the SQL query and table name
table_name = "<sql_pool_table>"
query = f"SELECT * FROM {table_name} WHERE some_column = 'some_value'"
这是我找到的唯一方法,但考虑到许多人将能够看到databrick(笔记本),我不想使用这种方法,在那里我必须提到密码。
我也试过这个方法,但不管用:
%%pyspark
df=spark.sql ("select * from TableName")
df.show()
在第二种方法中,我已经完全按照SQL Server Management Studio中的格式编写了Table Name,然后我尝试使用Azure Synapse专用的SQL池名称,但它们都不起作用。
如何使用Notebook(PySpark)访问Azure Synapse专用SQL池?
1条答案
按热度按时间w8f9ii691#
你可以通过在Azure密钥库中存储密码来访问Azure Synapse Notebook中的专用SQL池数据,而无需提及密码。对于创建Azure密钥保管库,并使用数据库密码创建密钥。
使用以下代码检索秘密值:
使用以下代码访问专用SQL数据库:
jdbcUrl = f“jdbc:sqlserver://{jdbcHostname}:{jdbcPort};databaseName={jdbcDatabase}”
df 1 =Spark。read.format(“jdbc”).option(“driver”,jdbcDriver).option(“url”,jdbcUrl)。选项(“dbtable”,table)。option(“user”,jdbcUsername)。option(“password”,jdbcPassword).load()