from_protobuf funkcja

Dotyczy:zaznaczone jako tak Databricks SQL zaznaczone jako tak Databricks Runtime 16.1 i nowsze

Konwertuje binarną wartość Protobuf na a, STRUCT używając określonej definicji komunikatu Protobuf.

Syntax

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

Arguments

  • data: Wyrażenie zawierające BINARY wiadomość Protobufa.
  • messageName: Stałe STRING wyrażenie nazywające wiadomość Protobuf do dekodowania.
  • descFilePath: Opcjonalna STRING stała ścieżka do pliku deskryptora Protobuf lub stała BINARY wartość zawierająca ten plik. Wygeneruj plik deskryptora z protoc --descriptor_set_out i --include_imports. Pomijam descFilePath tylko przy options konfigurowaniu rejestru schematów.
  • options: Opcjonalne wyrażenie stałe MAP<STRING, STRING> zawierające opcje konwersji.

Returns

A, którego pola i typy odpowiadają STRUCT definicji wiadomości Protobuf.

Jeśli data jest NULL, wynik to NULL.

Definicja wiadomości Protobuf musi odpowiadać schematowi .data Jeśli schematy się nie zgadzają, funkcja może zawiódć lub zwrócić dowolny wynik.

Opcje

Aby uzyskać pełną listę opcji, zobacz Protobuf.

Examples

Poniższy przykład wykorzystuje plik deskryptora wygenerowany z tej wiadomości Protobuf:

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

Dekoduj binarną wartość Protobufa:

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