Чтение и запись в / из SQL баз данных с Apache Spark - PullRequest
1 голос
/ 02 марта 2020

Я хотел бы понять, почему при работе с Apache Spark мы явно не закрываем соединения JDB C.

См .: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-spark-connector или https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html

Это связано с тем, что когда мы делаем

val collection = sqlContext.read.sqlDB(config)

или

jdbcDF.write
  .format("jdbc")
   (...)
  .save()

мы на самом деле не открываем соединение, а просто указываем этап DAG? А потом под капотом Spark устанавливает соединение и закрывает его?

1 Ответ

1 голос
/ 02 марта 2020

Это верно, Spark заботится об открытии / закрытии соединений JDB C с реляционными источниками данных на этапе выполнения плана. Это позволяет ему поддерживать уровень абстракции, необходимый для поддержки множества различных типов DataSource. Вы можете проверить исходный код JdbcRelationProvider (для чтения) или JdbcUtils (для сохранения), чтобы просмотреть эти логи c.

...