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

Parquet फ़ाइलों के साथ काम करना

CSV फ़ाइलें आयताकार डेटा ऑब्जेक्ट्स (जैसे R के data.frame और Spark के DataFrames) की सामग्री को डिस्क पर सेव करने के लिए बेहतरीन हैं। समस्या यह है कि इन्हें पढ़ना और लिखना काफ़ी धीमा होता है, इसलिए बहुत बड़े डेटासेट्स के लिए ये व्यावहारिक नहीं रहतीं। Parquet फ़ाइलें उच्च-प्रदर्शन वाला विकल्प देती हैं। Spark डेटा के अलावा, parquet फ़ाइलों का उपयोग Hadoop इकोसिस्टम के दूसरे टूल्स जैसे Shark, Impala, Hive, और Pig के साथ भी किया जा सकता है.

तकनीकी रूप से, parquet फ़ाइल कहना पूरी तरह सही नहीं है। जब आप डेटा को parquet फ़ॉर्मेट में स्टोर करते हैं, तो वास्तव में एक पूरा डायरेक्टरी बनता है जिसमें कई फ़ाइलें होती हैं। डेटा कई .parquet फ़ाइलों में बाँटा जाता है ताकि उसे कई मशीनों पर आसानी से स्टोर किया जा सके, और साथ में कुछ मेटाडेटा फ़ाइलें भी होती हैं जो हर कॉलम की जानकारी बताती हैं.

sparklyr spark_read_parquet() के ज़रिए parquet फ़ाइलें इम्पोर्ट कर सकता है। यह फ़ंक्शन एक Spark कनेक्शन, बनने वाले Spark DataFrame का नाम बताने वाली एक स्ट्रिंग, और parquet डायरेक्टरी का पाथ लेता है। ध्यान दें कि यह फ़ंक्शन डेटा को सीधे Spark में इम्पोर्ट करता है, जो आम तौर पर R में डेटा इम्पोर्ट करके फिर copy_to() से R से Spark में कॉपी करने की तुलना में तेज़ होता है.

spark_read_parquet(sc, "a_dataset", "path/to/parquet/dir")

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

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

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

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

आपके लिए spark_conn नाम से एक Spark कनेक्शन बनाया गया है। parquet डायरेक्टरी की ओर इशारा करती हुई एक स्ट्रिंग (उस फ़ाइल सिस्टम पर जहाँ R चल रहा है) parquet_dir के रूप में दी गई है।

  • dir() का उपयोग करके parquet डायरेक्टरी में मौजूद फ़ाइलों के absolute फ़ाइल पाथ्स की सूची बनाइए और परिणाम filenames को असाइन कीजिए।
    • पहला आर्ग्युमेंट वही डायरेक्टरी होनी चाहिए जिसकी फ़ाइलें आप सूचीबद्ध कर रहे हैं, यानी parquet_dir
    • absolute (relative नहीं) फ़ाइल पाथ्स प्राप्त करने के लिए full.names = TRUE भी पास करें।
  • दो कॉलम वाला एक data_frame बनाइए।
    • filename में अभी-अभी निकाले गए फ़ाइलनेम्स हों, बिना डायरेक्टरी वाले हिस्से के। इसे फ़ाइलनेम्स को basename() में पास करके बनाएँ।
    • size_bytes में उन फ़ाइलों के आकार (बाइट्स में) हों। इसे फ़ाइलनेम्स को file.size() में पास करके बनाएँ।
  • spark_read_parquet() का उपयोग करके timbre डेटा को Spark में इम्पोर्ट करें और परिणाम timbre_tbl को असाइन करें।
    • पहला आर्ग्युमेंट Spark कनेक्शन होना चाहिए।
    • दूसरा आर्ग्युमेंट "timbre" होना चाहिए।
    • तीसरा आर्ग्युमेंट parquet_dir होना चाहिए।

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

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

# parquet_dir has been pre-defined
parquet_dir

# List the files in the parquet dir
filenames <- ___

# Show the filenames and their sizes
data_frame(
  filename = ___,
  size_bytes = ___
)

# Import the data into Spark
timbre_tbl <- ___
कोड संपादित करें और चलाएँ