Значение по умолчанию DataFrame numPartitions - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь прочитать что-то из таблицы базы данных с помощью JDB C:

val df = spark.read.jdbc("<database url>", "<some table name>", <some DbProperties>)

, а затем записать это в другую базу данных:

df.write.mode(SaveMode.Append).jdbc("<other database url>", "<same table name>", <some DbProperties>)
  1. Если мы не указываем опцию numPartitions в свойствах базы данных, какое будет значение по умолчанию для numPartitions, которое Spark использует для чтения таблицы из базы данных в df?
  2. Если я хочу записать указанное выше df в другую таблицу другой базы данных, если я все еще не укажу numPartitions, будут ли создаваться параллельные соединения при записи в базу данных?
  3. Предположим, при чтении я указал numPartitions как 8, при записи этого df в целевую БД, будет ли numPartitions = 8 по-прежнему действительным, если я явно не укажу его при записи?

1 Ответ

2 голосов
/ 09 июля 2020

Если вы не укажете {partitionColumn, lowerBound, upperBound, numPartitions} или {predicates}, Spark будет использовать одного исполнителя и создаст один непустой раздел. Все данные будут обрабатываться с помощью одной транзакции, а чтение не будет ни распределяться, ни распараллеливаться.

См. Также:

Пожалуйста, проверьте документы искры для дополнительная информация об интеграции Spark JDB C

...