如何通过 Synapse 的 Spark 池将数据帧数据附加到专用的 SQL 池中?
Posted
技术标签:
【中文标题】如何通过 Synapse 的 Spark 池将数据帧数据附加到专用的 SQL 池中?【英文标题】:How to append the dataframe data into dedicated SQL pool through Spark pool of synapse? 【发布时间】:2021-12-07 06:25:09 【问题描述】:如何通过突触的Spark pool将数据框数据追加到专用的SQL池中?
【问题讨论】:
【参考方案1】:synapsesql.read
方法(描述为 here)目前不支持追加到专用 SQL 池表,但您可以通过分区切换或使用 CTAS 来组合原始表和新数据来模拟该行为。
分区模式:
CTAS 模式:
CREATE TABLE dbo.yourNewTable
WITH (
DISTRIBUTION = ROUND_ROBIN, -- or HASH(someColumn)|REPLCIATE
CLUSTERED COLUMNSTORE INDEX -- or CLUSTERED INDEX|HEAP
)
AS
SELECT *
FROM dbo.someTable_part1
UNION ALL
SELECT *
FROM dbo.someTable_part2;
您可能能够使用 JDBC 连接进行附加,但我可能不会在 Synapse 中这样做。您也可以尝试saveAsTable
方法,记住这附加到 Spark 表而不是专用 SQL 池表,例如:
df.write.saveAsTable('yourTable', mode='append')
【讨论】:
以上是关于如何通过 Synapse 的 Spark 池将数据帧数据附加到专用的 SQL 池中?的主要内容,如果未能解决你的问题,请参考以下文章
如何引发异常以退出 Synapse Apache Spark 笔记本
从 Azure Synapse 中的 Apache Spark 将数据写入 SQL DW
如何使用 Azure Synapse Analytics 将自定义 Python 库导入到 Apache Spark 池中?