Строка автоматически конвертируется в float - PullRequest
0 голосов
/ 09 марта 2020

У меня есть следующие данные для задания 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"}

Есть ли пропущенная настройка или какой-то способ заставить работу обработать строка как строка?

...