Three people on my engineering and ops teams have put a lot of effort into tuning bulk indexing and have had limited success. The best indexing rate we can get is ~70k per second. I have this thread to discuss that issue Spark Bulk Import Performance Benchmarks
What version of Elasticsearch are you using?
This article is a little old but might help