redshift vs spark
Spark in general provides a broader set of capabilities than Redshift because it has APIs in general-purpose languages (Java, Scala, Python) and libraries for things like machine learning and graph processing. For example, you might use Spark to do the ETL that will put data into a database such as Redshift, or you might pull data out of Redshift into Spark for machine learning.
On the other hand, if *all* you want to do is SQL and you are okay with the set of data formats and features in
Redshift (i.e. you can express everything using its UDFs and you have a way to get data in), then Redshift is a complete service which will do more management out of the box.
Many companies that use both, usually using Spark for ETL and advanced analytics and Redshift for SQL on the cleaned / summarized data.