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

Advanced Selection II: The SQL

जैसा पहले बताया गया था, जब आप dplyr इंटरफ़ेस का उपयोग करते हैं, तो sparklyr आपका कोड Spark को भेजने से पहले SQL में बदल देता है. अधिकतर समय, यही आपके लिए उपयुक्त होता है. हालाँकि, आप वही काम करने के लिए रॉ SQL भी लिख सकते हैं. ज़्यादातर मामलों में यह अच्छा विचार नहीं है, क्योंकि ऐसा कोड लिखना और डिबग करना कठिन होता है. फिर भी, यदि आप चाहते हैं कि आपका कोड पोर्टेबल हो — यानी R के बाहर भी इस्तेमाल किया जा सके — तो यह उपयोगी हो सकता है. उदाहरण के लिए, एक आम वर्कफ़्लो यह है कि आप डेटा प्रोसेसिंग पर प्रयोग करने के लिए sparklyr का उपयोग करें, और फिर प्रोडक्शन एनवायरनमेंट में रॉ SQL पर स्विच कर लें. अगर आप शुरुआत से ही रॉ SQL लिखते हैं, तो प्रोडक्शन में जाते समय आप बस अपनी क्वेरीज़ कॉपी-पेस्ट कर सकते हैं.

SQL क्वेरीज़ स्ट्रिंग्स के रूप में लिखी जाती हैं, और DBI पैकेज की dbGetQuery() को पास की जाती हैं. पैटर्न इस प्रकार है.

query <- "SELECT col1, col2 FROM some_data WHERE some_condition"
a_data.frame <- dbGetQuery(spark_conn, query)

ध्यान दें कि आपने जो dplyr कोड लिखा है, उसके विपरीत, dbGetQuery() क्वेरी को हमेशा तुरंत चलाता है और परिणाम तुरंत R में लौटा देता है. अगर आप डेटा रिटर्न को टालना चाहते हैं, तो आप dbSendQuery() से क्वेरी चलाकर, फिर dbFetch() से परिणाम प्राप्त कर सकते हैं. यह अधिक एडवांस्ड उपयोग है, जो यहाँ कवर नहीं किया गया है. यह भी ध्यान दें कि DBI फ़ंक्शन tibbles नहीं बल्कि data.frames लौटाते हैं, क्योंकि DBI एक लोअर-लेवल पैकेज है.

यदि आप SQL कोड लिखने के बारे में और सीखना चाहते हैं, तो Introduction to SQL कोर्स देखें.

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

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

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

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

आपके लिए spark_conn के रूप में एक Spark कनेक्शन बनाया गया है. Spark में स्टोर किए गए ट्रैक मेटाडेटा से जुड़ा एक tibble track_metadata_tbl नाम से प्री-डिफ़ाइंड है, और SQL क्वेरीज़ में इसे track_metadata के रूप में एक्सेस किया जा सकता है.

  • क्वेरी को पूरा करें ताकि track_metadata Spark डेटा फ़्रेम से वे सभी कॉलम चुने जाएँ जहाँ year 1935 से कम हो और duration 300 सेकंड से अधिक हो.
  • क्वेरी चलाने के लिए dbGetQuery() कॉल करें, परिणामों को results में असाइन करें, फिर आउटपुट देखें.

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

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

# Write SQL query
query <- "SELECT ___ FROM ___ WHERE ___ AND ___"

# Run the query
(results <- ___(___, ___))
कोड संपादित करें और चलाएँ