PySpark — Путь не существует при загрузке локального файла (изображения)

#python #apache-spark #pyspark

#python #apache-spark #pyspark

Вопрос:

Я делаю свои первые шаги с spark использованием python pyspark , и я сталкиваюсь с несколькими сомнениями и сбоем, которые я не смог решить после поиска рабочего решения. Пока я делаю:

 import pyspark
from pyspark.context import SparkContext
from pyspark.sql.session import SparkSession
sc = SparkContext('local')
spark = SparkSession(sc)
 

Я не полностью понимаю приведенный выше код. Это то, что должно всегда присутствовать при запуске проекта pyspark? SparkContext Установлено local значение, поскольку я работаю локально со своим компьютером, но еще не в облаке?

В любом случае, когда я пытаюсь загрузить локальный файл, в данном случае изображение, я получаю следующую ошибку:

 path = 'file:///home/guacamole/Training/sprk/myimage.jpg'
image_df = spark.read.format("image").load(path)

AnalysisException: Path does not exist: file:/home/guacamole/Training/sprk/myimage.jpg;
 

Просматривая похожие вопросы, я вижу, что указано, что file:/// необходимо добавить, чтобы указать, что это локальный файл. Не уверен, чего я здесь не понимаю или делаю неправильно.

Комментарии:

1. вам не нужно ничего уточнять file:/// . Я думаю, что это для блоков данных. /home/guacamole/Training/sprk/myimage.jpg должно быть хорошо.

Ответ №1:

вам нужно написать путь с обратной косой чертой, а не с обычной косой чертой, file:/// их там быть не должно, поэтому просто используйте : path = '\home\guacamole\Training\sprk\myimage.jpg' . Если изображение находится в другом каталоге, просто введите полный путь, но используйте 2 обратных косых черты. (в python «» используются для нейтрализации функции / удаления символа, следующего за ними, поэтому, если вы напишете одну обратную косую черту, весь путь будет случайным текстом, но если вы используете 2 обратных косых черты, первая не будет отображаться как просто нейтрализатор, а как втораяодин нейтрализуется из его функции, он не будет удалять символ после него).