Возможно ли записать разделенный фрейм данных в корзину S3?

#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. Спасибо, что нашли время для написания … Это была моя ошибка.. На самом деле, это была логическая ошибка .. теперь все работает нормально