2017-02-21 15 views
0

Я использую Spark для записи большого количества данных в Elasticsearch. Но некоторые (иногда большинство) из них являются дублированными документами, которые имеют одинаковый идентификатор в этом контексте. Поскольку запись данных в ES занимает много времени, я хочу знать, как пропустить индексацию, если идентификатор документа уже существует в ES?Как пропустить индексный документ, если такой документ существует?

нравится:

if doc.id in ES: 
    continue 
else 
    doc.index(ES) 

ответ

0

Я не знаю, как связь с искровым работает, но в эс вы можете установить operation type.

PUT twitter/tweet/1?op_type=create 
{ 
    "user" : "kimchy", 
    "post_date" : "2009-11-15T14:12:12", 
    "message" : "trying out Elasticsearch" 
} 

Но единственная проблема

When create is used, the index operation will fail if a document by that id already exists in the index. 
+1

Спасибо очень много, «Единственная проблема» действительно большая проблема для меня. Вы знаете какой-либо метод подавления исключения? – Mazz

+0

@Mazz Я бы посмотрел, как подавить ошибку на клиенте, так как ES просто вернет конкретное тело json. –