У меня есть следующие данные для задания glue etl:
<?xml version="1.0" encoding="UTF-8"?>
<SomeRoot>
<AllTheElements>
<AnElement>
<thisShouldBeAStringBut>43E0214</thisShouldBeAStringBut>
<thisIsAstringElement>TheQuick brown string</thisIsAstringElement>
</AnElement>
<AnElement>
<thisShouldBeAStringBut>43E0214X</thisShouldBeAStringBut>
<thisIsAstringElement>Some safe string</thisIsAstringElement>
</AnElement>
</AllTheElements>
</SomeRoot>
Я настраиваю и запускаю искатель, и он возвращает ожидаемые 2 элемента строки типа для каждой записи:
# aws glue get-tables --database-name fhj-test
{
"TableList": [
{
"Name": "fhj_float_test",
"DatabaseName": "fhj-test",
"Owner": "owner",
"CreateTime": 1583748557.0,
"UpdateTime": 1583748557.0,
"LastAccessTime": 1583748557.0,
"Retention": 0,
"StorageDescriptor": {
"Columns": [
{
"Name": "thisisastringelement",
"Type": "string"
},
{
"Name": "thisshouldbeastringbut",
"Type": "string"
}
],..........
Однако, когда я запускаю задание ETL со следующим отображением
val applymapping1 = datasource0.applyMapping(mappings = Seq(
("thisisastringelement", "string", "thisisastringelement", "string"),
("thisshouldbeastringbut", "string", "thisshouldbeastringbut", "string")
), caseSensitive = false, transformationContext = "applymapping1")
, строка 43E214 преобразуется в 4.3E214 (т. Е. Число с плавающей точкой с научным / экспозамеренным обозначением). Я испробовал оба выхода xml и json, но оба возвращают одинаковые, неправильные данные:
<root xmlns=""><records><record><thisisastringelement>TheQuick brown string</thisisastringelement><thisshouldbeastringbut>4.3E215</thisshouldbeastringbut></record></records></root>
<root xmlns=""><records><record><thisisastringelement>Some safe string</thisisastringelement><thisshouldbeastringbut>43E0214X</thisshouldbeastringbut></record></records></root>
{"thisisastringelement":"TheQuick brown string","thisshouldbeastringbut":4.3E215}
{"thisisastringelement":"Some safe string","thisshouldbeastringbut":"43E0214X"}
Есть ли пропущенная настройка или какой-то способ заставить работу обработать строка как строка?