【发布时间】:2019-10-29 17:22:17
【问题描述】:
我正在尝试将具有 1.5B 行的 DF 大容量复制到 SQL Server 表中。它只有 5 列,但行数很大。我正在尝试这种方法。
import com.microsoft.azure.sqldb.spark.bulkcopy.BulkCopyMetadata
import com.microsoft.azure.sqldb.spark.config.Config
import com.microsoft.azure.sqldb.spark.connect._
val bulkCopyConfig = Config(Map(
"url" -> "mysqlserver.database.windows.net",
"databaseName" -> "MyDatabase",
"user" -> "username",
"password" -> "*********",
"dbTable" -> "dbo.Clients",
"bulkCopyBatchSize" -> "100000",
"bulkCopyTableLock" -> "true",
"bulkCopyTimeout" -> "600"
))
df.bulkCopyToSqlDB(bulkCopyConfig)
我正在按照下面链接中的示例进行操作。
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-spark-connector
它持续运行几个小时,但从不将任何内容从 DF 复制到表中。想法?建议?谢谢。
顺便说一句,如果我尝试复制一个小得多的 DF,大约 150 万行,它工作得很好。
【问题讨论】:
-
交易完成还是取消?表上有索引吗?
-
建议您在导入时查看 sys.dm_exec_requests 以了解发生了什么。或者,您可以启动 XE 或分析器会话并观察命令完成以了解正在发生的事情。
-
在目标数据库上安装
whoisactive,看看发生了什么。 github.com/amachanic/sp_whoisactive
标签: azure apache-spark azure-sql-database