from_protobuf функция

Применяется к:отмечено галочкой да Databricks SQL отмечено галочкой да Databricks Runtime 16.1 и более поздним версиям

Преобразует бинарное значение Протобуфа в a STRUCT с использованием заданного определения сообщения Протобуфа.

Syntax

from_protobuf(data, messageName [, descFilePath [, options] ])
from_protobuf(data, messageName, options)

Arguments

  • data: Выражение BINARY , содержащее сообщение Протобуфа.
  • messageName: Постоянное STRING выражение, указывающее сообщение Protobuf для декодирования.
  • descFilePath: Необязательный постоянный STRING путь к файлу дескриптора Protobuf или постоянное BINARY значение, содержащее этот файл. Сгенерируйте дескрипторный файл с protoc --descriptor_set_out помощью и --include_imports. Опускайте descFilePath только при options настройке реестра схем.
  • options: Необязательное выражение константы MAP<STRING, STRING> , содержащее опции преобразования.

Returns

A, STRUCT поля и типы которых совпадают с определением сообщения Протобуфа.

Если data равно NULL, то результат – NULL.

Определение сообщения Протобуфа должно совпадать со схемой .data Если схемы не совпадают, функция может провалиться или вернуть произвольный результат.

Параметры

Полный список параметров см. в разделе Protobuf.

Examples

В следующем примере используется дескрипторный файл, сгенерированный из этого Protobuf-сообщения:

message Person {
  string name = 1;
  int32 id = 2;
}

Декодировать бинарное значение Протобуфа:

> SELECT from_protobuf(
    unhex('0A05416C696365102A'),
    'Person',
    '/path/to/person.desc');
  {"name":"Alice","id":42}