我正在尝试使用此查询将数据(超过3亿行)从hive表复制到Elasticsearch: - insert overwrite table TableNameES select * from HiveTableName;
&安培;插入一些行后我得到这个例外。我知道这是因为ES中的映射数据类型不同 ...
引起:org.elasticsearch.hadoop.rest.EsHadoopInvalidRequest:发现不可恢复的错误[xx.xx.xx.xx:9200]返回Bad Request(400) - [MapperParsingException [无法解析[pctblack.pctblack_raw]]; nested:NumberFormatException [对于输入字符串:“(S)”]; ]。纾困.. **
我想跳过插入错误的行,不仅此异常可能是其他异常。
答案 0 :(得分:0)
用一些数字替换“(S)”字符串。
insert overwrite table TableNameES select regexp_replace(regexp_replace(json_data,'"_id"','"id"'),'"\(S\)"','"0.0"') from HiveTableName;
但这不是一个合适的解决方案。