【发布时间】:2021-12-07 06:25:09
【问题描述】:
如何通过突触的Spark pool将数据框数据追加到专用的SQL池中?
【问题讨论】:
标签: azure-synapse
如何通过突触的Spark pool将数据框数据追加到专用的SQL池中?
【问题讨论】:
标签: azure-synapse
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')
【讨论】: