/ / Hive json dane z jednej tabeli do drugiej - json, hive, load

Przesyłaj dane json z jednej tabeli do drugiej - json, ul, ładunek

Mam tabelę A w gałęzi z jedną kolumną a1, która zawiera json.

Table A
Columns - a1

Json w kolumnie a1 ma na przykład 5 atrybutów (j1, j2, j3, j4, j5).

Muszę załadować dane z tabeli A do innej tabeli B.

Table B
Columns - b1, b2, b3, b4, b5

Reguła ładowania danych z A do B jest następująca:

b1 - j1
b2 - j2
b3 - j3
b4 - a1 (entire column of A)

Jak to zrobić?

I może zaistnieć potrzeba załadowania danych z B do innej tabeli C.

Today C
Columns - c1, c2, c3

c1, c2, c3 są ładowane danymi z kolumn b1, b2, b3 B

c1 - b1
c2 - b2
c3 - b3

Ale może być konieczne dodanie kolejnej kolumny c4 do C, a c4 musiałby zostać załadowany jednym z atrybutów json (j4) z kolumny b4 B.

c1 - b1
c2 - b2
c3 - b3
c4 - one of the json attributes from column b4 of B

czy to możliwe? Jeśli tak, czy możesz podać mi wskazówki?

Każde inne rozwiązanie również jest w porządku. Chcę tylko przechowywać JSON w historii, aby można było później odzyskać jego atrybuty. W powyższym przykładzie tabela A jest tabelą pomostową, a więc tymczasową.

Odpowiedzi:

0 dla odpowiedzi № 1

Hive ma UDF o nazwie get_json_object.

Może używać ścieżki json

  • $: Obiekt root
  • . : Operator podrzędny
  • []: Operator indeksu dolnego dla tablicy
  • *: Symbol wieloznaczny dla []