Я бегу искрой на лазурных блоках данных. Мое требование - мне нужно вытащить данные из oracle db и передать их в файлы.
Spark verison - 2.4
Databricks cluster size - 8 nodes,8 cores for each node.
Чтобы добиться большего параллелизма, я использовал алгоритм хеширования для столбца раздела в запросе оракула.
example - mod(ora_hash(id), 64) as partition_key
Проблема в том, что, хотя у меня в кластере Data-bricks доступно 64 ядра, только 8 ядер работают для извлечения данных из Oracle.
Пожалуйста, найдите прикрепленный снимок экрана для справки.
следующий код -
spark
.read
.format("jdbc")
.option("url", jdbc_url)
.option("dbtable",crmquery)
.option("lowerBound", 0)
.option("upperBound", 64)
.option("partitionColumn", "partition_key")
.option("numPartitions", 64)
.option("Driver",driverClass)
.option("user", user)
.option("password", pswd)
.option("fetchsize",1000)
.load()
.write
.option("header", "true")
.option("escape","")
.option("inferSchema", "false")
.csv(path)
Может кто-нибудь помочь мне, как увеличить количество подключений к оракулу БД при его чтении? Я могу использовать ядра до 56 лет.
Заранее спасибо.