scala - 无法使用 spark SQL 将数据插入配置单元弹性搜索索引
问题描述
我在 hive 终端中使用了以下步骤插入到弹性搜索索引中-
创建
hive
指向elasticsearch索引的表创建外部表 test_es(id string, name string) 由 'org.elasticsearch.hadoop.hive.EsStorageHandler' TBLPROPERTIES('es.resource = test/person', 'es.mapping = id') 存储;
创建临时表并将数据插入其中
创建表emp(id string,name string) 以','结尾的行格式分隔字段;
将数据本地输入路径'/home/monami/data.txt'加载到表emp中;
将临时表中的数据插入到 hive elasticsearch 索引中
插入覆盖表 test_es select * from emp;
我可以按照上述步骤成功浏览 hive elasticsearch 索引hive CLI
。但是,每当我尝试使用 SPARK SQLhiveContext
对象以相同的方式插入时,我都会收到以下错误 -
java.lang.RuntimeException: java.lang.RuntimeException: class org.elasticsearch.hadoop.mr.EsOutputFormat$EsOutputCommitter not org.apache.hadoop.mapred.OutputCommitter
你能告诉我这个错误的原因吗?如果无法使用 Spark 以相同的方式插入,那么使用 Spark 插入 hive elasticsearch 索引的方法是什么?
使用的版本 - Spark 1.6、Scala 2.10、Elasticsearch 6.4、Hive 1.1
解决方案
推荐阅读
- python - 为 numpy 数组和标量设置默认浮点格式
- flutter - 在特定日期和时间颤振语言环境通知
- python - PyTorch 和 EasyOCR:避免字符串分离
- python - Tkinter - 带有 if 语句的复选框
- google-cloud-platform - 无法使用自定义模式 VPC SSH 进入 GCP 虚拟机实例
- mysql - 使用mysql存储过程进行分页、排序和搜索
- sql - Druid 长时间运行查询超时并出现 HTTP 错误 504 网关超时异常
- arrays - 与数组的交互导致段错误
- javascript - 使用 Shaka 播放器显示 WebVTT 字幕或字幕
- typescript - 实例化一个类型为抽象类的类