Я намагаюся підключитися до MongoDB, використовуючи pyspark. Нижче наведено код, який я використовую
from pyspark import SparkConf, SparkContext
from pyspark.sql import SQLContext
sparkConf = SparkConf().setAppName("App")
sparkConf.set("spark.mongodb.input.uri", "mongodb://127.0.0.1/mydb.test")
sc = SparkContext(conf = sparkConf)
sqlContext =SQLContext(sc)
df = sqlContext.read.format("com.mongodb.spark.sql.DefaultSource").load()
df.printSchema()
Я стикаюся з нижньою помилкою
py4j.protocol.Py4JJavaError: An error occurred while calling o25.load.
java.lang.ClassNotFoundException: Failed to find data source: com.mongodb.spark.sql.DefaultSource.
Відповіді:
5 за відповідь № 1Не вдалося знайти джерело даних: com.mongodb.spark.sql.DefaultSource.
Ця помилка вказує на це PySpark не вдалося знайти MongoDB Spark Connector.
Якщо ви закликаєте pyspark
безпосередньо вкажіть mongo-spark-connector
у параметрі пакетів. Наприклад:
./bin/pyspark --packages org.mongodb.spark:mongo-spark-connector_2.11:2.2.0
Якщо ви не викликаєте pyspark безпосередньо (тобто з IDE, такого як Eclipse), вам доведеться змінити конфігурацію Spark. spark.jars.packages
, щоб вказати залежність.
Або в межах spark-defaults.conf
файл:
spark.jars.packages org.mongodb.spark:mongo-spark-connector_2.11:2.2.0
Або спробуйте змінити конфігурацію в коді:
SparkConf().set("spark.jars.packages","org.mongodb.spark:mongo-spark-connector_2.11:2.2.0")
Або:
SparkSession.builder.config("spark.jars.packages","org.mongodb.spark:mongo-spark-connector_2.11:2.2.0" ).getOrCreate()