This is dependent on what your current task is. Kafka is a message broker, while Spark (I guess you mean Spark structured streaming) is a parallel processing framework. So if your task is to do some number crunching based on the stream input, it might be worth having a closer look on Spark structured streaming. If the task is more on distributing the data you receive in a stream on multiple clients (consumer) fast and reliable, you might have a closer look on Kafka Streams.
But my personal experience is only with Kafka, but since Spark structured stream has left behind the experimental status it should be fine to use it in production.