Моя установка:Спарк Работа Скорость Relational Для SQL Server Размер
- У меня есть сервер MS SQL Azure работает (V12)
- У меня есть Спарк кластер работает в Azure HDInsights
- Spark.Version: 1.6.2
- Scala.Version: 2.10.5
Я вытягивать в моих данных (около 5 миллионов строк) с сервера SQL, с помощью JDBC драйвера, а затем обновления -й e. Затем я выполняю свою логику.
Вот как я прочитал с сервера:
println("SQL Load Start: " + TimeStamp.getCurrentTime.toDateString)
val options: Map[String, String] = Map("url" -> connectionString,
"dbtable" -> ("(SELECT * FROM Data)" + "Data"))
val data = sQLContext.read.format("jdbc").options(options).load()
println("DF Count: " + data.count().toString)
println("Partition Count: " + data.rdd.partitions.length.toString)
println("SQL Load End: " + TimeStamp.getCurrentTime.toDateString)
Когда я масштабировать сервер SQL, мои данные считываются быстро и моя логика работает примерно 10 секунд. Когда SQL-сервер мал, мои данные читаются медленнее (ожидается), но моя логика также занимает гораздо больше времени (НЕОЖИДАННО), занимая около 3-4 минут.
Размер кластера не изменяется. Число разделов в DataFrame не изменяется. Я только изменяю размер SQL-сервера.
Есть ли у кого-нибудь идеи о том, почему логическая часть моей работы Spark будет колебаться в зависимости от размера моего SQL-сервера?