Я новичок в Spark. Я пытаюсь прочитать локальный CSV-файл в кластере EMR. Файл находится в: / home / hadoop /. Вот сценарий, который я использую:
spark = SparkSession \
.builder \
.appName("Protob Conversion to Parquet") \
.config("spark.some.config.option", "some-value") \
.getOrCreate()\
df = spark.read.csv('/home/hadoop/observations_temp.csv, header=True)
Когда я запускаю скрипт, появляется следующее сообщение об ошибке:
pyspark.sql.utils.AnalysisException: u'Path не существует: hdfs: //ip-172-31-39-54.eu-west-1.compute.internal: 8020 / home / hadoop / monitoring_temp.csv
Затем я обнаружил, что мне нужно добавить file: // в путь к файлу, чтобы он мог прочитать файл локально:
df = spark.read.csv('file:///home/hadoop/observations_temp.csv, header=True)
Но на этот раз вышеупомянутый подход вызвал другую ошибку:
Потерянная задача 0.3 на этапе 0.0 (TID 3,
ip-172-31-41-81.eu-west-1.compute.internal, исполнитель 1): java.io.FileNotFoundException: File file: / home / hadoop /observations_temp.csv не существует
Я думаю, это потому, что расширение файла // просто читает файл локально и не распределяет файл по другим узлам.
Вы знаете, как я могу прочитать файл csv и сделать его доступным для всех других узлов?