Я использовал следующие шаги в терминале улья для вставки в индекс эластичного поиска -
Создать hive
таблицу, указывающую на индекс эластичного поиска
CREATE EXTERNAL TABLE test_es (строка идентификатора, строка имени) STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler' TBLPROPERTIES ('es.resource = test / person', 'es.mapping = id');
Создайте промежуточную таблицу и вставьте в нее данные
Создайте таблицу emp (id id, name name string) поля строки с разделителями, оканчивающиеся на ',';
загрузка данных local inpath '/ home/monami/data.txt 'в таблицу emp;
Вставить данные из промежуточной таблицы в индекс поиска ключей улья
вставить таблицу перезаписи test_es select * from emp;
Я мог бы успешно просмотреть индекс поиска кустов, выполнив описанные выше шаги в hive CLI
.Но всякий раз, когда я пытаюсь вставить таким же способом объект SPARK SQL hiveContext
, я получаю следующую ошибку:
java.lang.RuntimeException: java.lang.RuntimeException: class org.elasticsearch.hadoop.mr.EsOutputFormat$EsOutputCommitter not org.apache.hadoop.mapred.OutputCommitter
Не могли бы вы сообщить мне причину этой ошибки?Если невозможно вставить таким же способом с помощью Spark, то какой метод вставки в индекс куста эластичного поиска с использованием Spark?
Используемые версии - Spark 1.6, Scala 2.10, Elasticsearch 6.4, Hive 1.1