У меня есть отметка времени в формате YYYY-MM-DD XX:XX:XX
в файле csv, который хранится в S3, но когда я использую тип данных отметки времени для загрузки в базу данных Redshift с помощью Glue, столбец отметки времени имеет значение NULL. Похоже, что формат действителен, но я также пробовал форматы YYYYMMDD XXXXXX
и YYMMDD XX:XX:XX
на всякий случай.
Мое отображение в Glue идет от метки времени к метке времени, а тип данных столбца таблицы также является меткой времени. Ex данных в формате csv:
1,2016 Summer,2016-06-22 00:00:00
Фактический выход:
Line | Term | Date
-----+-------------+------------
1 | 2016 Summer |
Ожидаемый результат:
Line | Term | Date
-----+-------------+---------------------
1 | 2016 Summer | 2016-06-22 00:00:00
Кажется, что это должна быть простая задача, но я не могу понять ее правильно, поэтому, если кто-то еще сможет найти мою ошибку (-ы), это будет очень признательно.
Код:
val datasource37 = glueContext.getCatalogSource(database = "data", tableName = "term", redshiftTmpDir = "", transformationContext = "datasource37").getDynamicFrame()
val applymapping37 = datasource37.applyMapping(mappings = Seq(("id", "bigint", "id", "bigint"), ("name", "string", "name", "varchar(256)"), ("date", "timestamp", "date_start", "timestamp")), caseSensitive = false, transformationContext = "applymapping37")
val resolvechoice37 = applymapping37.resolveChoice(choiceOption = Some(ChoiceOption("make_cols")), transformationContext = "resolvechoice37")
val dropnullfields37 = resolvechoice37.dropNulls(transformationContext = "dropnullfields37")
val datasink37 = glueContext.getJDBCSink(catalogConnection = "dataConnection", options = JsonOptions("""{"dbtable": "term", "database": "data"}"""), redshiftTmpDir = args("TempDir"), transformationContext = "datasink37").writeDynamicFrame(dropnullfields37)