Upd. on re-read: Sadly, this book (as most "framework" tech books) aged quickly, and poorly. Some chapters are still very interesting, and appendix with debugging / tuning advice makes sense, but a lot of content is currently irrelevant. Chapters about ML and streaming can be safely skipped.
I'd really love to see updated edition, plux concentration on under-the-hood things and tuning.
Nice book, though it shouldn't be read like a textbook, more like a documentation, when you open the chapter you're interested in right now and using the advice that you just read. Maybe, first time read the book briefly, without any details, and when you'll have any spark-related troubles or questions - you'll know where to look for the answer.