Параллельное чтение с сервера sql в спарк - PullRequest
0 голосов
/ 28 июня 2019

Я использую com.microsoft.sqlserver.jdbc.SQLServerDriver для чтения данных с сервера sql в задании спарк. Чтобы повысить производительность, нужно читать данные параллельно. Соответствует ли число подключений, выполненных заданием spark, количеству ядер в команде spark-submit?

1 Ответ

0 голосов
/ 28 июня 2019

Единица распараллеливания Apache Spark - это количество разделов и доступных рабочих для их параллельной обработки. Разделы создаются по-разному. Для распределенных хранилищ данных они определяются с хранилищем. Например, Apache Kafka хранит данные в темах, которые состоят из разных разделов. Apache Spark использует это для параллельной обработки данных.

Но для СУБД это не так, поскольку они не распространяются (по крайней мере, классические), то есть данные хранятся в одном узле и, в конце концов, реплицируются. Чтобы использовать разделение Apache Spark для этого случая, вы должны определить свой столбец разделения в опциях JDBC. Вы можете найти более подробную информацию здесь https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html или здесь для примеров https://www.waitingforcode.com/apache-spark-sql/partitioning-rdbms-data-spark-sql-jdbc/read

Является ли количество подключений, созданных искровым заданием, равным количеству ядер в команде spark-submit?

Нет, количество соединений будет равно количеству ваших разделов.

...