Первая ошибка возникает из-за конфликтующей зависимости регистратора slf4j. В файле jar соединителя Spark mon go в качестве зависимости указан список slf4j. См. Информация о пакете Maven . Однако это всего лишь предупреждение, и искра выбирает первый доступный. Кажется, что этот JAR установлен дважды в вашей системе. Один из пакета искры и один из них oop. Mon go -connector перечисляет это как предоставленную зависимость, и spark использует все, что есть в системе.
Обычно можно исключить jar с
--exclude-packages
Разделенный запятыми список groupId: artifactId, чтобы исключить его при разрешении зависимостей, представленных в --packages, чтобы избежать конфликтов зависимостей.
например,
--exclude-packages org.slf4j:slf4j-api
Однако я не думаю, что это проблема здесь.
Вторая ошибка говорит о том, что такого метода конструктора MongoClient не существует. MongoClient - это пакетная зависимость java для моноблочного искрового соединителя go. Либо он вообще не был загружен должным образом. Или вы как-то неправильно передаете параметры conf, что в итоге вызывает конструктор MongoClient с неправильными аргументами (с другим количеством или неправильными типами).
Я вижу, что вы используете разные qouting и обратные кавычки вокруг команды. Вы также пишете, что пытались установить драйвер java mon go. Вы поместили банку где-нибудь на пути к классам. Это не нужно. Аргумент --packages
разрешает зависимости от maven. mongo-spark-connector
зависит от драйвера go и должен разрешить его для вас. См. maven info и source . Эта зависимость включена (в отличие от предоставленной slf4j
)
Попробуйте вставить указанную ниже команду в вашу оболочку. Не устанавливайте драйвер mon go java вручную.
pyspark \
--conf "spark.mongodb.input.uri=mongodb://127.0.0.1/mydb.mytable?readPreference=primaryPreferred" \
--conf "spark.mongodb.output.uri=mongodb://127.0.0.1/mydb.mytable" \
--packages org.mongodb.spark:mongo-spark-connector_2.11:2.4.1
Когда я запускаю эту команду, там автоматически устанавливается 2 баночка на ~/.ivy2/cache
org.mongodb.spark_mongo-spark-connector_2.11-2.4.1.jar
org.mongodb_mongo-java-driver-3.10.2.jar
. установлены. Банки также не содержат никакого другого зависимого кода из других пакетов. Вы можете проверить классифицированное с unzip -l <jar-file-name>.jar