首页 > 解决方案 > 从 Databricks Python Notebook 在 Azure Synapse 中批量插入 PySpark Dataframe

问题描述

使用批次

我有一个 PySpark 数据框,由 750 多个列和 250 万条记录组成,大约 6.5 GB。我正在从 Databricks python notebook 到 Azure Synapse 表进行批量插入(批量)。

以下是 Microsoft 文档中的示例代码 ( https://docs.databricks.com/data/data-sources/azure/synapse-analytics.html )

spark.conf.set(
  "fs.azure.account.key.<your-storage-account-name>.blob.core.windows.net",
  "<your-storage-account-access-key>")

df.write \
  .format("com.databricks.spark.sqldw") \
  .option("url", "jdbc:sqlserver://<the-rest-of-the-connection-string>") \
  .option("forwardSparkAzureStorageCredentials", "true") \
  .option("dbTable", "my_table_in_dw_copy") \
  .option("tempDir", "wasbs://<your-container-name>@<your-storage-account-name>.blob.core.windows.net/<your-directory-name>") \
  .save()

问题陈述:我需要为另外一个 PySpark Dataframe 实现相同的功能,它包含一列,其中包含 8000 多个 JSON 字符。在底层 Synapse 表中,此列是 nvarhcar(max) 类型。上述代码不适用于字符长度超过 4000 个字符的列。

对于这种情况,请帮助如何在上面的代码中处理这个问题。

标签: pythonpysparkazure-databrickspyspark-dataframesazure-synapse

解决方案


推荐阅读