Запись данных таблицы улья в файл в формате Json

#json #jar #hive #brickhouse

#json #jar #улей #кирпичный дом

Вопрос:

Я пытаюсь записать данные таблицы улья во внешний файл в формате Json.

 ({"column_name_1: column_value_1", "column_name_2: column_value_2"}).
 

Может ли serde это сделать? Я прочитал, что serde считывает данные только в формате json, но не записывает их обратно.

Я читал о brickhouse, но я не могу правильно добавить jar.

Я выполнил все шаги в документации по ссылке, приведенной выше, но это не удалось. Правильно ли я это делаю?

 add jar /root/brickhouse/target/brickhouse-0.7.1-SNAPSHOT.jar;
/root/brickhouse/target/brickhouse-0.7.1-SNAPSHOT.jar does not exist
Query returned non-zero code: 1, cause: /root/brickhouse/target/brickhouse-0.7.1-SNAPSHOT.jar does not exist
 

Ответ №1:

  • Чтобы добавить Jar в HIVE_AUX_JARS_PATH сервера HiveServer2:
    1. Скопируйте brickhouse-0.7.1-SNAPSHOT.jar файлы на хост, на котором запущен сервер HiveServer2. Создайте следующий каталог /usr/share/hivejar и сохраните здесь JAR.
    2. Изменить hive-site.xml Выполнение следующих команд на терминале:
       sudo vi /etc/alternatives/hive-conf/hive-site.xml:
      
      <property>
      <name>hive.metadata.export.location</name>
      <value>export HIVE_AUX_JARS_PATH=/usr/share/hivejar</value>
      </property>
       
    3. Перезапустите службу Hive. Если свойство каталога Hive Auxiliary Jars настроено, но каталог не существует, HiveServer2 не запустится.
  • Чтобы проверить переменные ENV улья, выполните следующие команды на терминале:
     hive 
    hive> set -v;
    hive> quit;
     
  • Выполните следующие команды на терминале (в /usr/share/hivejar ):
     hive
    
    hive> add jar brickhouse-0.7.1-SNAPSHOT.jar;
    hive> quit;
     

Комментарии:

1. Спасибо, еще один вопрос: как мне «Использовать объявления UDF, определенные в src /main/resource/brickhouse.hql»?

2. После добавления jar создайте временную функцию следующим образом: CREATE TEMPORARY FUNCTION to_json КАК ‘brickhouse.udf.json. ToJsonUDF’;