#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 обратных косых черты, первая не будет отображаться как просто нейтрализатор, а как втораяодин нейтрализуется из его функции, он не будет удалять символ после него).