如何通过spark池访问azure synapse无服务器池(或元数据)

问题描述 投票:0回答:1

MS Doc 他们提到

Azure Synapse Analytics 允许不同的工作区计算 在 Apache Spark 池之间共享数据库和表的引擎 无服务器 SQL 池。

在 Azure Synapse Analytics 文档的其余部分中,他们讨论了 Spark 池的数据库和表(parquet、delta、csv 支持)如何自动与无服务器池同步。

但没有任何地方提到相反的情况。如果我在 Serverless 池中创建表或外部表,它会自动在 Spark 池中可用吗?

这里他们提到

SQL和Spark可以直接探索和分析Parquet、CSV、TSV和 存储在数据湖中的 JSON 文件。

进一步扩展我上面的问题,如果使用json文件创建表,它在spark池中是否可用?

azure apache-spark serverless azure-synapse-analytics
1个回答
0
投票

如果我在 Serverless 池中创建表或外部表,它会自动在 Spark 池中可用吗?

不可以,您无法直接从 Synapse 无服务器 SQL 池中获取表。 Synapse 无服务器 SQL 池表在其外部不可直接使用。 Synapse 提供了一项功能,使您能够通过将 Spark 数据库对象同步到无服务器池来访问 Spark 数据库对象,而无需 Spark 池处于活动或运行状态。

您可以参考此文档以获取更多信息。

如果使用json文件创建表,它在spark池中是否可用?

不可以,Synapse 无服务器 SQL 池表不能直接在其外部使用。要访问该表,您需要使用 synapse 中的 JDBC 连接器。正如 @jon 所说,要从无服务器 SQL 池连接并提取数据,您可以使用 SQL jdbc 连接。

print("read data from SQL")
jdbcDF = spark.read \
        .format("com.microsoft.sqlserver.jdbc.spark") \
        .option("url", url) \
        .option("dbtable", dbtable) \
        .option("user", user) \
        .option("password", password).load()

jdbcDF.show(5)
© www.soinside.com 2019 - 2024. All rights reserved.