0

我正在寻找如何从 Scala Spark 读取 Azure Synapse 表,但没有成功。我在https://docs.microsoft.com中找到了其他带有 Spark 的 Azure 数据库的连接器,但没有使用新的 Azure 数据仓库。

有谁知道这是否可能?

4

2 回答 2

0

现在可以直接通过简单的努力(甚至为此在 UI 中添加了一个右键单击选项)从 Azure Synapse 中的专用SQL 池(新的 Analytics 工作区,而不仅仅是 DWH)中读取数据Scala(不幸的是,现在只有 Scala)。

在 Synapse 工作区中(当然还有一个写入 API):

val df = spark.read.sqlanalytics("<DBName>.<Schema>.<TableName>")

如果在集成笔记本体验之外,需要添加导入:

 import com.microsoft.spark.sqlanalytics.utils.Constants
 import org.apache.spark.sql.SqlAnalyticsConnector._

听起来他们正在努力扩展到 SERVERLESS SQL 池以及其他 SDK(例如 Python)。

阅读本文的顶部作为参考:https ://docs.microsoft.com/en-us/learn/modules/integrate-sql-apache-spark-pools-azure-synapse-analytics/5-transfer-data-between -sql-火花池

于 2021-03-30T07:36:44.317 回答
0

也许我误解了你的问题,但通常你会在 Spark 中使用 jdbc 连接来使用来自远程数据库的数据

检查此文档 https://docs.databricks.com/data/data-sources/azure/synapse-analytics.html

请记住,Spark 必须将 Synapse 表中的数据提取到内存中进行处理并在那里执行转换,因此它不会将操作下推到 Synapse 中。

通常,您希望对源数据库运行 SQL 查询,并且只将 SQL 的结果带入 Spark 数据帧。

于 2020-07-02T20:33:33.973 回答