How to Read Spark DAGs | Rock the JVM

Поділитися
Вставка
  • Опубліковано 1 гру 2024

КОМЕНТАРІ • 65

  • @anandahs6078
    @anandahs6078 2 роки тому +2

    I don't know how to express my gratitude to you. I went through lot of other youtube videos but none of them explained DAG execution like you. I have become a fan. It is worth watching your video and recommend to everyone

  • @recker2326
    @recker2326 3 роки тому +4

    This is the best video for explanation on dags. You helped me to do a most important company work! Cheers👍👍🥂🥂🍻

    • @rockthejvm
      @rockthejvm  3 роки тому +1

      Happy to hear it! Help others by sharing the tips here.

  • @saketverma1471
    @saketverma1471 2 роки тому +4

    Hi Daniel, Thanks for the video. Really appreciate the way you explained such a complex topic in simple terms.

  • @turnawayandgo
    @turnawayandgo 4 роки тому +1

    this is literally my favorite video on spark

  • @ashishlimaye2408
    @ashishlimaye2408 3 роки тому +2

    The best explaination for DAG.

  • @arpsdac
    @arpsdac 4 роки тому +3

    I love your explanations, DAG is very important for spark optimization stuff. I am a big follwer of your corses on Udemy and other platforms. Please keep sharing with us such amazing videos.

  • @jacco2952
    @jacco2952 2 роки тому +1

    This was really, really helpful for analysing big data tasks!

  • @murthyspec2002
    @murthyspec2002 2 роки тому

    Thanks daniel for your nice explaination of complex topic in a simpler way!! good job!!

  • @tadastadux
    @tadastadux Рік тому +1

    It's very useful video. Thank you. I'd like more advice on how to convert/read mapPartitions to the actual code.

  • @ygorallandefraga7805
    @ygorallandefraga7805 4 роки тому +3

    Awesome. You should record other videos talking about what shuffle read and shuffle write mean (how to interpret them) and a little bit about how to understand the state of spark (mainly in the dag). I think this kind of information is missing in the Spark Documentation (or at least is pretty hidden). Keep doing videos like these! Thx

    • @rockthejvm
      @rockthejvm  4 роки тому +1

      Glad it helps - we'll be doing more of these.

  • @arpsdac
    @arpsdac 4 роки тому +1

    Big fan of your explanation.

  • @ibnu0muhammad
    @ibnu0muhammad Рік тому +1

    oh my god, this is so good! can you create some video on how we are interacting with the executor through every operation?

    • @rockthejvm
      @rockthejvm  Рік тому

      Check out the course, we have this at length: rockthejvm.com/p/spark-essentials

  • @rmiliming
    @rmiliming 2 роки тому +1

    Nice video ! Can we have a video on how to avoid/reduce shuffling? Tks

    • @rockthejvm
      @rockthejvm  2 роки тому

      A whole course, actually: rockthejvm.com/p/spark-optimization

  • @ashishchoksi8501
    @ashishchoksi8501 2 роки тому +1

    Great video!
    Visiting your channel first time, glad that you tube showed this video in suggestion.
    I already know basics of spark learned few things from here and there, wondering might be missing many things.
    do you have spark for beginner course??

    • @rockthejvm
      @rockthejvm  2 роки тому

      Yes! rockthejvm.com/p/spark-essentials

  • @rupalgakkhar5913
    @rupalgakkhar5913 Рік тому +1

    This one is useful.. Thanks for making it

  • @animeshsrivastava2398
    @animeshsrivastava2398 7 місяців тому +1

    Such a detailed video. Why does this is low on views?

    • @rockthejvm
      @rockthejvm  7 місяців тому +1

      Anybody's guess: algorithm, I don't put an angry face on my thumbnails, or something else 😅 in any case, share it!

  • @anirbansom6682
    @anirbansom6682 3 роки тому +1

    Hi Daniel, before explaining the join step you mentioned that the smaller table is broadcasted across the executors. Then why there is a exchange due to the join?

    • @rockthejvm
      @rockthejvm  3 роки тому +1

      It should appear as BroadcastExchange in the query plans - that's a sign that the broadcast is working.

  • @gian963
    @gian963 4 роки тому +1

    Really great video! I was following you on udemy and I was hopping to have more videos on the subject of advance Spark optimization features. :)

    • @rockthejvm
      @rockthejvm  4 роки тому +1

      Glad you like it! The home for future material will be rockthejvm.com, so check there for the latest and greatest!

  • @mouadmuslim
    @mouadmuslim 7 місяців тому +1

    very well explained

  • @romi2015
    @romi2015 3 роки тому +1

    Excellent video and explanations
    One comment - in 14:18 the join seems to happen on stage 6 with the broadcasted dataframe from the previous job. The shuffle between stage 6 and 7 is for collecting the local sums of each partition and to sum them up in order to get the final result. The 413 bytes of the Shuffle Write on stage 6 is an indication. Is that correct?

  • @Prashanth-yj6qx
    @Prashanth-yj6qx 2 роки тому

    Hi Rock, Can you create one data skew/data spill code and explain how to do performance improvments

    • @rockthejvm
      @rockthejvm  2 роки тому

      Yep! rockthejvm.com/p/spark-optimization

  • @book_beats
    @book_beats 2 роки тому

    Super clear explanation, thank you.

  • @rs-research-laboratory
    @rs-research-laboratory 4 роки тому +1

    Really a good explanation

  • @ishangaur9667
    @ishangaur9667 3 роки тому +1

    Awesome explanation for Spark DAGs in a layman language. Had a follow-up question - how the number of tasks ( Partitions ) are decided for the other stages which were present in the DAG i.e. you did talk about the stages which had 7 or say 9 tasks and we were able to identify those using the transformation i.e. repartition(7) or repartition(9) you did BUT what about the other stages. How the tasks are calculated for those stages ?

    • @rockthejvm
      @rockthejvm  3 роки тому

      There are various defaults that Spark uses. For example, parallelize uses the number of virtual cores as the number of partitions (in the absence of other config). Other operations use 200 partitions as a default, etc.

  • @SpiritOfIndiaaa
    @SpiritOfIndiaaa 3 роки тому

    thank you so much ..nice explanation... you are doing "sum" instead can you do "count" of records after aggregation ... when we use "count" only one tast we see i.e. one partition...its killling performace....how to handle/repartition the data in such scenario?

    • @rockthejvm
      @rockthejvm  3 роки тому

      It's not killing performance - that aggregation works in the same way, as partial aggregations are computed per partition before being collapsed into one value.

  • @rsamurti
    @rsamurti 2 роки тому

    Is it possible to capture the DAGs while a job is running for determining the average job completion time? This will be helpful to fine-tune the job scheduler to reduce the average job completion time.

    • @rockthejvm
      @rockthejvm  2 роки тому

      You can build such a tool that inspects Spark at runtime.

  • @rishigc
    @rishigc 3 роки тому +1

    Hi Daniel - incredible video.. i work with Spark SQL queries and often find the need to optimize the poor performing sql queries by analyzing details in Spark UI. Are there any of your resources which discuss about the same in details ? If yes, then could you please point me in the right direction. Would love to hear more from you. Thanks

    • @rockthejvm
      @rockthejvm  3 роки тому

      Yes - I have long-form, in-depth courses on Spark performance at rockthejvm:
      rockthejvm.com/p/spark-optimization
      rockthejvm.com/p/spark-performance-tuning

    • @rishigc
      @rishigc 3 роки тому

      @@rockthejvm Thanks a bunch, Daniel.. looking forward to take up the courses

    • @rishigc
      @rishigc 3 роки тому

      @@rockthejvm I took a look at the courses.. But I think they discuss in details with Scala which I don't know. Do you have a course to performance tuning Sql queries which generic in nature E.g select, Joins, Where clauses etc ?

    • @rishigc
      @rishigc 3 роки тому

      @@rockthejvm Hi Daniel I am looking forward to purchase the "spark-optimization" course. Could you please let me know which one of these 2 courses discuss extensively about SparkSQL query optimizations, reading query plans, join optimization and interpreting Spark UI (rewriting queries etc).Thanks

    • @rishigc
      @rishigc 3 роки тому

      @@rockthejvm Hi Daniel, I bought the "spark-optimization" course :-)

  • @ashutoshsamal7158
    @ashutoshsamal7158 2 роки тому +1

    Why there is shuffle for sum? i think it could have been done in parallel

    • @rockthejvm
      @rockthejvm  2 роки тому +1

      Partial sums are computed in parallel, but the final result is computed on one executor as the partial results are aggregated.

  • @rishabhkohli7170
    @rishabhkohli7170 2 роки тому

    Amazing explanation
    Thanks

  • @sagarghanwat2225
    @sagarghanwat2225 3 роки тому

    Great explanation!!

  • @learn_technology_with_panda
    @learn_technology_with_panda Рік тому +1

    Excellent

  • @abhi121able
    @abhi121able 2 роки тому

    Really meaningful content.

  • @databiceps
    @databiceps 4 роки тому +1

    Hi Daniel,
    Thanks for the great Video. I have been following you on udemy. I was really looking out for the DAG explanation. Thanks a ton !!
    Also, I had a request if you can guide for any resource wherein I can learn about spark DAGs more.

    • @rockthejvm
      @rockthejvm  4 роки тому

      I'll create some more material in time - for now, the best resources I have are in the Spark Optimization courses on Rock the JVM: rockthejvm.com/p/spark-optimization

  • @shuaibsaqib5085
    @shuaibsaqib5085 2 роки тому

    Hi Daniel, Nice explanation and a small suggestion from my side that you are speaking little fast, as iam watching ur video in 0.75x speed.

  • @Gauravkumar-xw9ug
    @Gauravkumar-xw9ug 4 роки тому

    Hey Daniel, Are u planning to make your "spark optimization" course available on Udemy.

    • @rockthejvm
      @rockthejvm  4 роки тому

      Nope, only on the rockthejvm.com website for the most dedicated people - hoping you'll join us there

  • @akhilraj8614
    @akhilraj8614 4 роки тому

    Hey Daniel, great content!! I was wondering if you can lay-out the order in which you would advise someone coming from a Python background to take your courses and if there are any supplementary reading materials that you would advise to read in-between courses. Thanks in advance :)

    • @rockthejvm
      @rockthejvm  4 роки тому +1

      Yes, absolutely. Will put something out for people with different backgrounds.

  • @thevijayraj34
    @thevijayraj34 2 роки тому +1

    Great