«Не удалось найти источник данных: mongodb» при попытке подключить pyspark к MongoDB.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 «Не удалось найти источник данных: mongodb» при попытке подключить pyspark к MongoDB.

Сообщение Anonymous »

Я не очень хорошо разбираюсь в пакетах Python и Java, поэтому, пожалуйста, потерпите.
У меня возникли некоторые проблемы со следующим кодом в моем блокноте Jupyter. >

Код: Выделить всё

import pyspark
from pyspark.sql import SparkSession
import pyspark.sql.functions as f
from pyspark.sql.functions import explode,col
from pyspark.conf import SparkConf
from pymongo.mongo_client import MongoClient
from pymongo.server_api import ServerApi

uri = "mongodb://localhost:27017/connection1"

spark = SparkSession \
.builder \
.master("local") \
.appName("Tesi") \
.config("spark.mongodb.read.connection.uri", uri) \
.config("spark.mongodb.write.connection.uri", uri) \
.config('spark.jars.packages', 'org.mongodb.spark:mongo-spark-connector_2.13:10.3.0') \
.config("spark.driver.bindAddress", "127.0.0.1")\
.getOrCreate()

df = spark.read \
.format("mongodb") \
.option("uri", uri) \
.option("database", "local") \
.option("collection", "electricity_readings") \
.load()
Выполнение этого кода вызывает следующее исключение:

Код: Выделить всё

An error occurred while calling o213.load.
: org.apache.spark.SparkClassNotFoundException: [DATA_SOURCE_NOT_FOUND] Failed to find the data source: mongodb.
Исследуя проблему, я нашел несколько возможных решений, но ничего не помогает, поэтому либо моя проблема другая, либо я делаю что-то не так, и я думаю, что это последнее , поэтому мне нужна помощь, чтобы завершить настройку этого проекта.
Это соответствующие переменные среды.
  • < li>PYSPARK_HOME = C:\Users\filos\AppData\Roaming\Python\Python39\site-packages\pyspark
  • SPARK_HOME = C:\Spark\spark-3.5.1-bin- Hadoop3
  • JAVA_HOME = C:\Progra~1\Java\jdk-18.0.1.1
  • Путь содержит указанные выше переменные с соответствующими папками bin< /li>
    HADOOP_HOME = C:\Hadoop (он содержит только папку bin с winutils.exe)
Нет CLASSPATH или JAVA_CLASSPATH установлен. Я загрузил файлы jar для mongo-spark и поместил их в папку %PYSPARK_HOME%\jars, надеясь, что банки будут прочитаны оттуда, но это не сработало. Я поместил их в созданную мной отдельную папку (C:\Progra~1\Java\jars) и установил для переменной CLASSPATH этот адрес, но вместо этого сработало следующее исключение.

Код: Выделить всё

An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext.
: java.io.IOException: Failed to connect to xxx/xxx.xxx.x.x:59587
...
Caused by: java.net.ConnectException: Connection refused: no further information
...
Это также сработает, если я помещу mongo-spark-connector_2.13-10.3.0.jar в папку C:\Program Files\Java\jre-1.8\lib. Эта проблема характерна не только для ячейки с отправленным мной кодом: предыдущая ячейка с другим чтением SparkSession из файла json также вызывает такое же исключение при запуске.
Я считаю, что загруженные мной jar-файлы должны быть куда-то помещены, и, возможно, необходимо установить переменную CLASSPATH, чтобы читать эти jar-файлы, но я не уверен, как это сделать, поскольку простое помещение случайной папки с jar-файлами в качестве значения для CLASSPATH вызывает исключение.

Подробнее здесь: https://stackoverflow.com/questions/786 ... ark-to-mon
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»