#amazon-web-services #amazon-s3 #pyspark #partitioning #aws-glue
#amazon-web-services #amazon-s3 #pyspark #разделение #aws-glue
Вопрос:
Я должен записать фрейм данных Spark в корзину S3, и он должен создать отдельный файл parquet для каждого раздела.
Вот мой код:
dynamicDataFrame = DynamicFrame.fromDF(
testDataFrame, glueContext ,
"dynamicDataFrame")
glueContext.write_dynamic_frame.from_options(
frame = dynamicDataFrame,
connection_type = "s3",
connection_options = {
"path": "s3://BUCKET_NAME/DIR_NAME",
"partitionKeys": ["COL_NAME"]
},
format = "parquet"
)
Когда я указываю опцию «partitionKeys»: [«COL_NAME»], задание склеивания выполняется без каких-либо ошибок, но оно не создает никакого файла в S3.
И когда я удаляю эту опцию «partitionKeys», тогда создается 200 файлов parquet в S3 (номер раздела по умолчанию равен 200). Но я хочу создавать разделы на основе определенного столбца.
Итак, возможно ли создавать файлы parquet с разделением на разделы в S3 при записи DF в S3?
Примечание: Я использую ресурсы AWS, то есть AWS Glue.
Комментарии:
1. Это определенно возможно . Вы уверены, что ваш
dynamicDataFrame
файл не пуст? Используете ли вы закладки?2. @YuriyBondaruk Спасибо за ваш ответ… Да, я уверен, что мой динамический фрейм данных не пуст. Но да, я использую закладки
3. Я удалил закладки, но по-прежнему не могу записать разделенный DF в S3 .. первоначально он создает временный каталог, и как только задание будет завершено, он также удалит этот временный каталог.
4. публикация решения может быть полезной для других. Также фрейм данных и dynamicframe работают немного по-другому. Фрейм данных поддерживает s3, поэтому нет необходимости преобразовывать фрейм данных в динамический фрейм перед записью в s3.
Ответ №1:
R вы уверены, что в столбце раздела есть данные?
Вы нашли что-нибудь в журналах glue
Комментарии:
1. Спасибо, что нашли время для написания … Это была моя ошибка.. На самом деле, это была логическая ошибка .. теперь все работает нормально