Как изменить тип столбца с TIMESTAMP на DATE таблицы BigQuery [duplicate]

Пифонический, рекурсивный и функциональный подход к разгадке произвольных деревьев JSON:

handlers = {
    list:  iterate,
    dict:  delve,
    str:   emit_li,
    float: emit_li,
}

def emit_li(stuff, strong=False):
    emission = '<li><strong>%s</strong></li>' if strong else '<li>%s</li>'
    print(emission % stuff)

def iterate(a_list):
    print('<ul>')
    map(unravel, a_list)
    print('</ul>')

def delve(a_dict):
    print('<ul>')
    for key, value in a_dict.items():
        emit_li(key, strong=True)
        unravel(value)
    print('</ul>')

def unravel(structure):
    h = handlers[type(structure)]
    return h(structure)

unravel(data)

, где data - список python (проанализирован из текстовой строки JSON):

data = [
    {'data': {'customKey1': 'customValue1',
           'customKey2': {'customSubKey1': {'customSubSubKey1': 'keyvalue'}}},
  'geometry': {'location': {'lat': 37.3860517, 'lng': -122.0838511},
               'viewport': {'northeast': {'lat': 37.4508789,
                                          'lng': -122.0446721},
                            'southwest': {'lat': 37.3567599,
                                          'lng': -122.1178619}}},
  'name': 'Mountain View',
  'scope': 'GOOGLE',
  'types': ['locality', 'political']}
]
8
задан scaryguy 17 March 2016 в 22:15
поделиться

1 ответ

Использование SELECT с записью результата обратно в таблицу

SELECT 
  CAST(int_field AS FLOAT) AS float_field, 
  <all_other_fields> 
FROM YourTable

Этот подход будет проверять всю таблицу

. Чтобы выполнить это - вы должны использовать кнопку «Показать параметр» в веб-интерфейсе BQ Web и правильно настроить параметры, как показано ниже. После того, как вы запустите это - ваша таблица будет иметь этот столбец с поплавком и оригинальным целым типом данных, как вы хотели. Примечание. Вы должны использовать правильное / одноименное имя для int_field и float_field

, если вам просто нужно было добавить новый столбец. Я бы указал вам на Таблицы: patch GBQ API . Я не уверен, что этот API позволяет изменить тип столбца - я сомневаюсь, но легко проверить

Использование Задания: вставить EXTRACT и затем LOAD

Здесь вы можете извлечь таблицу в GCS, а затем загрузить ее обратно в GBQ с помощью скорректированной схемы

. Вышеуказанный подход будет: a) исключить стоимость затрат на таблицы запросов (сканирования) и b) может помочь с ограничениями, которые могут возникнуть, если у вас есть сложное смирение (с записями / повторением / вложенными и т. д. тип / режим)

15
ответ дан geekidharsh 23 August 2018 в 17:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: