2016-06-05 7 views
1

Я видел много похожих вопросов, но они не являются специфическими для Google Cloud Datalab и используют UDF в одно и то же время, например. query execution shows Unknown TVS error и creating table from query result via python API.Использование Google Datalab, как создать таблицу из сложного запроса с помощью UDF в Google BigQuery?

Мне удалось создать таблицу, когда UDF не был использован, но когда это было, она вернула ошибку «Неизвестный TVF: myFunc».

Редактировать Вот код, я использую:

%%bigquery udf --module transform_field 
...udf function... 

Тогда я использовал UDF функции выше в запросе SQL:

%%sql --module querymodule 
...complex SELECT query FROM transform_field(table)... 

Тогда я хотел бы использовать это запрос для создания другой таблицы, как показано ниже:

%%bigquery execute --target project:dataset.tablename --query querymodule 

Но он продолжал показывать эту ошибку вместо того, чтобы:

Неизвестный ТВФ: TRANSFORM_FIELD

+0

Не могли бы вы поделиться своим кодом? –

+0

Добавлен код, спасибо! – jaycode

ответ

2

Хорошо, я нашел его. Оказывается, вам нужно передать запрос через питона клетки, прежде чем использовать его в %%bigquery execute клетке:

bq_query = bq.Query(querymodule, udf=transform_field) 

Таким образом, весь процесс должен идти следующим образом:

%%bigquery udf --module transform_field 
...udf function... 

Тогда я использовал UDF выше, в запросе sql:

%%sql --module querymodule 
...complex SELECT query FROM transform_field(table)... 

Затем используйте запрос и функцию udf выше создайте объект bq.Query.

bq_query = bq.Query(querymodule, udf=transform_field) 

Затем используйте bq_query в создании таблицы.

%%bigquery execute --target project:dataset.tablename --query bq_query 

Я продолжаю удивляться тому, что делают добрые ночи.

+0

Отлично! В качестве дополнительного ресурса есть запись в UDF в вики Datalab с рабочим примером: https://github.com/googledatalab/datalab/wiki/UDFs –

+0

Спасибо, я думаю, что больше примеров для конкретных задач, подобных описанным выше, необходимо быть добавлен в wiki/documentation. – jaycode

 Смежные вопросы

  • Нет связанных вопросов^_^