Проблема с соединителем mongodb-spark: java.lang.NoClassDefFoundError - PullRequest
1 голос
/ 11 апреля 2019

Я пытаюсь установить соединение между блокнотом jupyter (pyspark) и mongodb в игре Apache.Приходит следующая ошибка, и я не знаю, как ее решить.

import findspark
findspark.init()

from pyspark.sql import SparkSession

my_spark = SparkSession \
    .builder \
    .appName("myApp") \
    .config("spark.mongodb.input.uri", "mongodb://127.0.0.1/db.coll") \
    .config("spark.mongodb.output.uri", "mongodb://127.0.0.1/db.coll") \
    .config("spark.jars.packages", "org.mongodb.spark:mongo-spark-connector_2.12-2.4.0") \
    .getOrCreate()

df = my_spark.read.format("com.mongodb.spark.sql.DefaultSource").load()

Py4JJavaError: Произошла ошибка при вызове o86.load.: java.lang.NoClassDefFoundError: Не удалось инициализировать класс com.mongodb.spark.config.ReadConfig $ в com.mongodb.spark.sql.DefaultSource.constructRelation (DefaultSource.scala: 91) в com.mongodb.spark.sql.DefaultSource.createRelation (DefaultSource.scala: 50) в org.apache.spark.sql.execution.datasources.DataSource.resolveRelation (DataSource.scala: 318) в org.apache.spark.sql.DataFrameReader.loadV1Source (DataFrameReader.scala: 223) в org.apache.spark.sql.DataFrameReader.load (DataFrameReader.scala: 211) в org.apache.spark.sql.DataFrameReader.load (DataFrameReader.scala: 167) в java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) по адресу java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) по адресу java.base / jdk.internal.refetjccesshoho ()java.base / java.lang.reflect.Method.invoke (Method.java:566) в py4j.reflection.MethodInvoker.invoke (MethodInvoker.java:244) в py4j.mirror.ReflectionEngine.invoke (ReflectionEngine.java:357) в py4j.Gateway.invoke (Gateway.java:282) в py4j.commands.AbstractCommand.invokeMethod (AbstractCommand.java:132) в py4j.commands.CallCommandCexte (.java: 79) на py4j.GatewayConnection.run (GatewayConnection.java:238) на java.base / java.lang.Thread.run (Thread.java:834)

...