For distributing calculation task, which is better celery or spark
Adding to the above answer, there are other areas also to identify.

Integration with the existing big data stack if you have.
Data pipeline for ingestion
You mentioned "backend for web application". I assume its for read operation. The response times for any batch application might not be a good fit for any web application. 

Choice of streaming can help you get the data into the cluster faster. But it will not guarantee the response times needed for web app. You need to look at HBase and Solr(if you are searching). 
Spark is undoubtedly better and faster than other batch frameworks. In streaming there may be few other. As I mentioned above, you should consider the parameters on which your choice is made.
Problem: calculation task can be paralleled easily. but it is needed real-time response.
There can be two approaches.
1. using Celery: runs job in parallel from scratch
2. using Spark: runs job in parallel with spark framework
I think spark is better in scalability perspective. But is it OK Spark as backend of web-application?