Загрузить файл Avro в GCS с вложенной записью, используя настроенное имя столбца - PullRequest
0 голосов
/ 16 апреля 2019

Я пытался загрузить файл Avro с вложенной записью.Одна из записей имела объединение схем.При загрузке в BigQuery для каждого элемента объединения было создано очень длинное имя, например com_mycompany_data_nestedClassname_value.Это имя длинное.Интересно, есть ли способ указать имя без префикса полного имени пакета.

Например.Следующая схема Avro

{
    "type": "record",
    "name": "EventRecording",
    "namespace": "com.something.event",
    "fields": [
        {
            "name": "eventName",
            "type": "string"
        },
        {
            "name": "eventTime",
            "type": "long"
        },
        {
            "name": "userId",
            "type": "string"
        },
        {
            "name": "eventDetail",
            "type": [
                {
                    "type": "record",
                    "name": "Network",
                    "namespace": "com.something.event",
                    "fields": [
                        {
                            "name": "hostName",
                            "type": "string"
                        },
                        {
                            "name": "ipAddress",
                            "type": "string"
                        }
                    ]
                },
                {
                    "type": "record",
                    "name": "DiskIO",
                    "namespace": "com.something.event",
                    "fields": [
                        {
                            "name": "path",
                            "type":  "string"
                        },
                        {
                            "name": "bytesRead",
                            "type": "long"
                        }
                    ]
                }
            ]
        }
    ]
}

содержит enter image description here

Возможно ли сделать длинное имя поля, например, eventDetail.com_something_event_Network_value быть чем-то вроде eventDetail.Network

1 Ответ

1 голос
/ 16 апреля 2019

Avro загрузка не такая гибкая, как должна быть в BigQuery (базовый пример - то, что она не поддерживает загрузку подмножества полей (схема считывателя). Кроме того, переименование столбцов сегодня не поддерживается в BigQuery см. здесь . Только параметры воссоздают вашу таблицу с правильными именами (создают новую таблицу из существующей таблицы) или воссоздают таблицу из предыдущей таблицы

...