Spark Writing Parquet array <string>преобразуется в другой тип данных при загрузке в BigQuery - PullRequest
0 голосов
/ 07 декабря 2018

Spark Dataframe Schema:

    StructType(
        [StructField("a", StringType(), False),
        StructField("b", StringType(), True),
        StructField("c" , BinaryType(), False),
        StructField("d", ArrayType(StringType(), False), True),
        StructField("e", TimestampType(), True)
        ])

Когда я записываю фрейм данных в паркет и загружаю его в BigQuery, он интерпретирует схему по-разному.Это простая загрузка из JSON и запись в паркет с использованием spark dataframe.

Схема BigQuery:

            [
    {
        "type": "STRING",
        "name": "a",
        "mode": "REQUIRED"
    },
    {
        "type": "STRING",
        "name": "b",
        "mode": "NULLABLE"
    },
    {
        "type": "BYTES",
        "name": "c",
        "mode": "REQUIRED"
    },
    {
        "fields": [
        {
            "fields": [
            {
                "type": "STRING",
                "name": "element",
                "mode": "NULLABLE"
            }
            ],
            "type": "RECORD",
            "name": "list",
            "mode": "REPEATED"
        }
        ],
        "type": "RECORD",
        "name": "d",
        "mode": "NULLABLE"
    },
    {
        "type": "TIMESTAMP",
        "name": "e",
        "mode": "NULLABLE"
    }
    ]

Это как-то связано с тем, как спарк пишет, или как BigQuery читает паркет.Есть идеи, как мне это исправить?

...