शुरू करेंमुफ़्त में शुरू करें

Sorting बनाम arranging

अब तक इस अध्याय में, आपने Spark की MLlib से कुछ फीचर ट्रांसफॉर्मेशन फंक्शनों को देखा है. sparklyr आपको Spark DataFrame API का उपयोग करने वाले कुछ फंक्शनों तक भी पहुँच देता है.

किसी tibble को sort करने का dplyr तरीका है arrange() का उपयोग करना. आप Spark की DataFrame API के ज़रिए भी tibbles को sdf_sort() से sort कर सकते हैं. यह फंक्शन उन कॉलमों का एक character वेक्टर लेता है जिन पर sort करना है, और फिलहाल केवल ascending ऑर्डर में sort सपोर्ट करता है.

उदाहरण के लिए, कॉलम x के आधार पर, फिर (tie होने पर) कॉलम y, फिर कॉलम z के आधार पर sort करने के लिए, नीचे दिया गया कोड dplyr और Spark DataFrame दोनों तरीकों की तुलना करता है.

a_tibble %>%
  arrange(x, y, z)
a_tibble %>%
  sdf_sort(c("x", "y", "z"))

कौन-सा तरीका तेज़ है, यह देखने के लिए arrange() और sdf_sort() दोनों का इस्तेमाल कीजिए. आप यह देख सकते हैं कि आपका कोड चलने में कितना समय लेता है, अगर आप उसे microbenchmark() (उसी नाम के पैकेज से) में wrap कर दें.

microbenchmark({
  # your code
})

आप अपने कोड की स्पीड प्रोफाइल करने के बारे में और जान सकते हैं Writing Efficient R Code कोर्स में.

यह अभ्यास पाठ्यक्रम का हिस्सा है

R में sparklyr के साथ Spark परिचय

पाठ्यक्रम देखें

अभ्यास निर्देश

आपके लिए spark_conn नाम का Spark कनेक्शन बनाया गया है. Spark में स्टोर किए गए ट्रैक मेटाडेटा से जुड़ा एक tibble track_metadata_tbl के रूप में पहले से परिभाषित है.

  • यह तुलना करने के लिए कि निम्न कार्यों में कितना समय लगता है, microbenchmark() का उपयोग करें.
    • track_metadata_tbl की पंक्तियों को year, फिर artist_name, फिर release, फिर title के अनुसार ऑर्डर करने के लिए arrange() का उपयोग करें.
    • परिणाम को collect करें.
    • यही काम दोबारा करें, लेकिन इस बार arrange() की जगह sdf_sort() का उपयोग करें. कॉलम नामों को quote करना याद रखें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# track_metadata_tbl has been pre-defined
track_metadata_tbl

# Compare timings of arrange() and sdf_sort()
microbenchmark(
  arranged = track_metadata_tbl %>%
    # Arrange by year, then artist_name, then release, then title
    ___ %>%
    # Collect the result
    ___,
  sorted = track_metadata_tbl %>%
    # Sort by year, then artist_name, then release, then title
    ___ %>%
    # Collect the result
    ___,
  times = 5
)
कोड संपादित करें और चलाएँ