Как читать/писать в minio с помощью искры?Python

Программы на Python
Ответить
Anonymous
 Как читать/писать в minio с помощью искры?

Сообщение Anonymous »

Я создал Docker-контейнер Spark и Minio с приведенной ниже конфигурацией:

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

services:
spark:
build: .
command: sleep infinity
container_name: spark
volumes:
- ./spark_scripts:/opt/spark/work-dir
# - ./init/spark/init.sh:/init_scripts/init.sh
working_dir: /opt/spark/work-dir
environment:
AWS_ACCESS_KEY_ID: minioadmin
AWS_SECRET_ACCESS_KEY: minioadmin
obj_storage:
image: minio/minio:RELEASE.2025-09-07T16-13-09Z-cpuv1
container_name: obj_storage
ports:
- 9000:9000
- 9001:9001
volumes:
- ./obj_storage_data:/mnt/data
- ./init/obj_storage/minio:/etc/config.env
command: server --console-address ":9001" /mnt/data
Ниже приведен файл Docker для Spark-контейнера:

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

FROM apache/spark:3.5.1-python3

USER root

RUN curl -o /opt/spark/jars/hadoop-aws-3.3.4.jar \
https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-aws/3.3.4/hadoop-aws-3.3.4.jar \
&& curl -o /opt/spark/jars/aws-java-sdk-bundle-1.12.367.jar \
https://repo1.maven.org/maven2/com/amazonaws/aws-java-sdk-bundle/1.12.367/aws-java-sdk-bundle-1.12.367.jar

USER spark
Мой искровой код:

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

from pyspark.sql import SparkSession

spark = (
SparkSession.builder
.appName("spark-minio")
.config("spark.hadoop.fs.s3a.endpoint", "http://obj_storage:9000")
.config("spark.hadoop.fs.s3a.access.key", "minioadmin")
.config("spark.hadoop.fs.s3a.secret.key", "minioadmin")
.config("spark.hadoop.fs.s3a.path.style.access", "true")
.config("spark.hadoop.fs.s3a.connection.ssl.enabled", "false")
.config("spark.hadoop.fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem")
.getOrCreate()
)
df = spark.read.csv("s3a://client-files/movie_review.csv", header=True, inferSchema=True)
df.show()
Он ничего не читает и не записывает в корзину minio. Ниже приведена ошибка:

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

26/01/26 04:06:53 WARN FileSystem: Failed to initialize fileystem s3a://client-files/movie_review.csv: java.lang.IllegalArgumentException: hostname cannot be null
Traceback (most recent call last):
File "/opt/spark/work-dir/text_classifier.py", line 14, in 
df = spark.read.csv("s3a://client-files/movie_review.csv", header=True, inferSchema=True)
File "/opt/spark/python/lib/pyspark.zip/pyspark/sql/readwriter.py", line 740, in csv
File "/opt/spark/python/lib/py4j-0.10.9.7-src.zip/py4j/java_gateway.py", line 1322, in __call__
File "/opt/spark/python/lib/pyspark.zip/pyspark/errors/exceptions/captured.py", line 185, in deco
Я правильно настроил корзину, подтвердил это с помощью Postman. Я что-то упустил в конфигурации искры?

Подробнее здесь: https://stackoverflow.com/questions/798 ... sing-spark
Ответить

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

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

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

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

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