Извините за ужасный заголовок вопроса, но вот мой сценарий
- У меня есть блокнот pyspark databricks, в который я загружаю другие блокноты.
- Один из этих блокнотов устанавливает некоторое красное смещениеконфигурация для чтения данных из красного смещения (некоторые временные интервалы S3).Я не могу изменить ни одну из этих конфигураций.
- При этой конфигурации оба возвращают
True
.Это полезно на шаге № 5
sc._jsc.hadoopConfiguration (). Get ("fs.s3n.awsAccessKeyId") == Нет sc._jsc.hadoopConfiguration (). Get ("fs.s3n.awsSecretAccessKey") == Нет
У меня есть модель Apache Spark, которую мне нужно сохранить в моем контейнере S3, который отличается от настроенного для красного смещения. Я выбираю другие объекты и сохраняю их в AWS с помощью boto3, и он работает нормально, ноЯ не думаю, что мы можем мариновать модели Apache, как другие объекты.Поэтому я должен использовать метод сохранения модели с URL-адресом S3, и для этого я устанавливаю учетные данные aws следующим образом, и это работает (если никто в одном кластере не работает с конфигурациями AWS).
sc._jsc.hadoopConfiguration (). Set ("fs.s3n.awsAccessKeyId", AWS_ACCESS_KEY_ID) sc._jsc.hadoopConfiguration (). Set ("fs.s3n.awsSecretAccessKey")AWS_SECRET_ACCESS_KEY)
После сохранения этой модели мне также нужно прочитать другие данные из красного смещения, и здесь происходит сбой со следующей ошибкой.То, что я думаю, - то, что конфигурация красного смещения S3 изменена с вышеупомянутым кодом.
org.apache.spark.SparkException: задание прервано из-за сбоя этапа: задание 0 на этапе 1844.0 не выполнено 4 раза, последний сбой: потерянное задание 0.3 на этапе 1844.0 (TID 63816,10.0.63.188, исполнитель 3): com.amazonaws.services.s3.model.AmazonS3Exception: запрещено (услуга: Amazon S3; код состояния: 403; код ошибки: 403 запрещен; идентификатор запроса: 3219CD268DEE5F53; расширенный идентификатор запроса S3: rZ5 /zi2B + AsGuKT0iW1ATUyh9xw7YAt9RULoE33WxTaHWUWqHzi1 + 0sRMumxnnNgTvNED30Nj4o =), S3 Расширенная Request ID: rZ5 / zi2B + AsGuKT0iW1ATUyh9xw7YAt9RULoE33WxTaHWUWqHzi1 + 0sRMumxnnNgTvNED30Nj4o =
Теперь мой вопрос, почему я не могу снова прочитать данные.Как я могу сбросить конфигурацию S3 в RedShift так, как это было до явной настройки после сохранения модели в S3.
Что я тоже не понимаю, так это то, что изначально значения aws были None, и когда я пытаюсь выполнить сброс с помощью None самостоятельно, возвращается сообщение об ошибке:
The value of property fs.s3n.awsAccessKeyId must not be null
.Обходной путь, при котором я сохраню модель локально на блоках данных, а затем сделаю zip-файл и загрузлю его на S3, но все же это всего лишь патч.Я хотел бы сделать это надлежащим образом.
Извините за использование кавычки для кода, потому что по какой-то причине он не работал для многострочного кода
Заранее спасибо !!!