Комментарий user10938362 содержит ссылку на объяснение того, как вы не можете таким образом записывать содержимое из блока данных в нераспределенное хранилище данных.Вместо того, чтобы закрыть это как дубликат, я отвечу на суть моего вопроса, который состоял в том, как я могу записать содержимое большого фрейма данных в хранилище.
Моя первая попытка была записать результат непосредственно вS3.Я обнаружил, что при работе с существенными фреймами данных, т. Е. ~ 50 ГБ, операция записи не удалась, потому что S3 постоянно переименовывает файлы посредством такой операции, и это нарушает Spark.Правильный способ решения проблемы - сначала записать фрейм данных в HDFS, а затем скопировать его оттуда в S3 или в любое другое облачное хранилище, которое вы могли бы использовать.Команда для записи в HDFS в python:
some_df.write.mode("overwrite").save(
"hdfs:///some_file_name",
format="json")
Как только данные были записаны в HDFS, я выполняю следующую команду из терминала, чтобы скопировать их в S3:
s3-dist-cp --src hdfs:///some_file_name --dest s3a://some_bucket/some_path
Вы также можете запустить эту команду копирования из python:
import os
os.system("/usr/bin/s3-dist-cp --src hdfs:///some_file_name --dest s3a://some_bucket/some_path")