Удалите конечные нули в динамическом кадре клея, созданном из объекта S3

Я написал связующий код, который считывает данные из корзины S3 и загружает их в Redshift. Этот код является общим, поэтому он может читать все файлы из S3 в цикле и загружать их все в красном смещении.

Однако в некоторых файлах у меня есть числовые поля, но когда динамический фрейм считывает их, они добавляют «.0» в конце каждого числового поля (в некоторых случаях также для поля даты). Может кто-нибудь, пожалуйста, помогите, как я могу прочитать все поля только в виде строки, чтобы динамический кадр не добавлял конечные нули

                  S3bucket_node = glueContext.create_dynamic_frame.from_options(
                format_options={"withHeader": True, "separator": "~"},
                connection_type="s3",
                format="csv",
                connection_options={"paths": ["s3://name/{0}".format(file_name_temp)]},
                transformation_ctx="S3bucket_node",
            )

После создания S3bucket_node я использую его для загрузки в Redshift. Но поскольку формат полей меняется из-за нулей в конце, моя работа терпит неудачу.

Я пробовал использовать FromDF и toDF, но не смог решить эту проблему.

Пример одного из моих исходных файлов:

      Cust_name, Age, JoiningDate
John,29,20210101

После обработки вышеуказанных данных из DynamicFrame(S3bucket_node) значения изменяются следующим образом:

      John,29.0,20210101.0

0 ответов

Другие вопросы по тегам