Технически возможно обойти это, с осторожным распределением ресурсов и использованием пулов планирования уровня менеджера или даже отдельного менеджера кластера с его собственным набором или ресурсами, но это не то, для чего предназначен Spark, он не поддерживается и в целом приведет к хрупкой и запутанной конструкции, где корректность зависит от деталей конфигурации, выбора конкретного менеджера кластера и общего использования кластера.
у Spark Jobs, которые говорят с Кассандрой в Datastax.
Иногда при выполнении последовательности шагов в задании Spark легче просто получить новый RDD, чем присоединиться к старому.
Вы можете сделать это, позвонивSparkContext [getOrCreate][1]
метод.
Теперь иногда в задании Spark возникают опасения, что ссылка на SparkContext может взять большой объект (контекст Spark), который нельзя сериализовать, и попытаться распространить его по сети.
В данном случае - вы регистрируете синглтон для этой JVM, и это решает проблему сериализации.
Однажды ко мне пришел мой технический руководитель и сказал
Не использоватьSparkContext getOrCreate
Вы можете и должны использовать соединения вместо
Но он не дал причину.
Мой вопрос:Есть ли причина не использовать SparkContext.getOrCreate при написании искрового задания?