Оптимальный способ чтения 100 миллионов данных из таблицы с использованием JDBC в SPARK
Я попробовал ниже код для чтения 100 миллионов строк параллельно с использованием JDBC в SPARK.
Dataset<Row> txnDf = sparkSession.read().format("jdbc").option("url", connection).option("partitionColumn", "TXN_DETAIL_ID").option("numPartitions", 1000).option("lowerBound", 1L).option("upperBound", 100000L)
.option("dbtable", "CI_TXN_DETAIL_STG_100M").load();
Кто-нибудь может подсказать здесь, какие могут быть оптимальные значения для нижеуказанных параметров?
- numPartitions (я использовал 1000)
- lowerBound (я использовал 1L (длинное значение))
- upperBound (я использовал 100000L (длинное значение))
Я имею:
- 10 исполнителей
- каждый исполнитель имеет 91 ГБ памяти
- 170 ядер, на которых работает приложение