I use spark for batch data transforms, our data is structurally complicated, but not for streaming. I attended the EU Spark Summit last year, as of then Spark streaming wasn't prime-time ready, I don't know if anything has changed in the last 12 months on the streaming front.
You should have a look at Flink if you're looking into streaming transforms.
You should have a look at Flink if you're looking into streaming transforms.