XLSX को Parquet में बदलें

यहाँ आप XLSX को Parquet में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। कन्वर्ज़न आपके अपने ब्राउज़र के भीतर होता है, इसलिए फ़ाइल कभी अपलोड नहीं होती। यह Windows, macOS और Linux पर वैसे ही चलता है जैसे iPhone और Android पर, और कनेक्शन काट देने पर भी चलता रहता है।

  • कहाँ चलता है आपके ब्राउज़र में। फ़ाइल कभी अपलोड नहीं होती।
  • नए सिरे से बना Parquet के काम करने का तरीक़ा XLSX से अलग है। यह किसी लॉसी कोडेक जैसा धीरे-धीरे होने वाला नुक़सान नहीं है: Parquet जो कुछ व्यक्त कर सकता है, वह हूबहू उतर आता है — और जिसका वहाँ कोई समतुल्य नहीं, वह पूरी तरह रह जाता है।
  • फ़ाइल आकार की सीमा हर फ़ाइल 100 MB तक, मुफ़्त, बिना खाते के।
  • जानने लायक़ सिर्फ़ पहली शीट पढ़ी जाती है, और उसमें भी सिर्फ़ मान। सूत्र, फ़ॉर्मैटिंग, कॉलम की चौड़ाई और पहली के बाद की हर शीट पीछे रह जाती है।

एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।

स्प्रेडशीट रो सहेजती है, Parquet कॉलम सहेजता है

वर्कबुक का हर दूसरा लक्ष्य एक-के-बाद-एक रिकॉर्ड सहेजता है। Parquet एक-के-बाद-एक फ़ील्ड सहेजता है: पचास हज़ार ऑर्डर की तारीख़ें साथ, फिर पचास हज़ार शहर, फिर सारी रक़म। यह फ़ॉर्मैटिंग की पसंद नहीं, फ़ॉर्मेट के होने की पूरी वजह है।

नतीजा पहली बार क्वेरी करने पर दिखता है — दो सौ फ़ील्ड में से दो पढ़ने वाला सवाल सिर्फ़ दो कॉलम के बराबर बाइट छूता है, पूरी रो नहीं। बदलना इसलिए ट्रांसपोज़िशन भी है, सिर्फ़ सिरियलाइज़ेशन नहीं।

हर कॉलम अपना टाइप कैसे पाता है

टाइप वैल्यू से तय होता है, घोषित नहीं होता, क्योंकि स्प्रेडशीट कोई स्कीमा नहीं ढोती। हर कॉलम पूरी तरह जाँचा जाता है: सारी ग़ैर-ख़ाली वैल्यू बूलियन हों तो BOOLEAN; सारी 32-बिट सीमा के भीतर पूरे नंबर हों तो INT32; कुछ और हो तो DOUBLE; बाक़ी सब स्ट्रिंग।

खाली जगहें इसमें शामिल नहीं होतीं। पूरी गिनती पढ़ना नमूने लेने से धीमा है और उस तरह ग़लत नहीं हो सकता जिस तरह नमूना गड़बड़ करता है।

एक भटकी हुई वैल्यू पूरे कॉलम को टेक्स्ट बना देती है, जान-बूझकर

पाँच हज़ार अंकीय एंट्री के बाद SW1A 1AA वाला पिनकोड कॉलम एक स्ट्रिंग कॉलम है, और अंकीय एंट्री भी स्ट्रिंग बनकर लिखी जाती हैं।

पहली रो से टाइप उधार लेने वाला विकल्प एक ऐसी फ़ाइल बनाता जो लोड होती, चलती, और चुपचाप जो मेल न खाए उसे मिटा देती। स्ट्रिंग कॉलम दिखता है, एक एक्सप्रेशन में कास्ट किया जा सकता है, और कभी चुपचाप रो नहीं खोता।

बड़े इंटीजर DOUBLE क्यों बनते हैं, INT64 क्यों नहीं

Parquet में 64-बिट इंटीजर टाइप है, पर यहाँ इस्तेमाल नहीं होता। वैल्यू वर्कबुक से JavaScript नंबर के रूप में आती हैं, जो 53 बिट सटीकता रखते हैं।

ऐसी वैल्यू को INT64 लिखना एक ऐसी सटीकता का वादा करेगा जो अब नंबर के पास है ही नहीं। DOUBLE ईमानदार घोषणा है। अगर आपके डेटा में इससे बड़े ID हैं, स्प्रेडशीट में उन्हें टेक्स्ट के रूप में सहेजिए।

आकार का फ़र्क़, नापा गया

पचास हज़ार रो और छह कॉलम की एक शीट पर Parquet फ़ाइल 301 KB में आई। वही डेटा .xlsx के रूप में लगभग 4.3 MB था और टैब-अलग टेक्स्ट के रूप में 1.8 MB।

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

तारीख़ें दिन-गिनती के रूप में आती हैं, टाइमस्टैंप नहीं

स्प्रेडशीट किसी तारीख़ सेल में जो सहेजती है वह एक नंबर और एक दिखावट-फ़ॉर्मेट है। बदलाव वही नंबर लिखता है, इसलिए 1 जनवरी 2024 दिसंबर 1899 के आख़िर से गिनकर 45292 बन जाता है, और कॉलम को इंटीजर की तरह टाइप किया जाता है।

कैलेंडर लगाना जहाँ आप क्वेरी करें वहाँ एक-पंक्ति एक्सप्रेशन है — दिन-गिनती को epoch तारीख़ में जोड़ना — और वहीं करना बेहतर है बजाय वर्कबुक को टेक्स्ट में फिर से फ़ॉर्मैट करने के।

DuckDB, pandas या Spark में नतीजा पढ़ना

कुछ ख़ास चाहिए नहीं। DuckDB इसे FROM क्लॉज़ में सीधे पढ़ता है, pandas एक ही कॉल से पढ़ता है। फ़ाइल चार बाइट PAR1 से शुरू और ख़त्म होती है, जिससे इनमें से कोई भी इसे पहचान लेता है।

लोड करने के बाद सबसे पहले अनुमानित टाइप देखना ज़रूरी है, पहली दस रो नहीं। जो कॉलम आपको अंकीय लगे और टेक्स्ट बनकर आया, वह स्प्रेडशीट के बारे में एक सच बता रहा है।

एक शीट, और बाक़ी का क्या करें

बदलाव वर्कबुक की पहली शीट पढ़ता है। Parquet एक स्कीमा वाली एक टेबल रखता है, इसलिए कई शीट को बिना किसी मर्ज गढ़े एक फ़ाइल में नहीं दिखाया जा सकता।

कई मायने रखने वाली शीट वाले वर्कबुक के लिए हर एक अलग बदलिए और क्वेरी इंजन को उन्हें साथ जोड़ने दीजिए — यह वही व्यवस्था है जिसके लिए ये इंजन बने हैं।

फ़ाइल कहाँ लिखी जाती है, और सीमा क्या है

दोनों हिस्से आपके ब्राउज़र में चलते हैं: स्प्रेडशीट रीडर और Parquet राइटर दोनों पेज पर माँग पर लोड लाइब्रेरी हैं, और कोई अनुरोध वर्कबुक कहीं नहीं ले जाता।

सीमा याददाश्त की है, किसी प्लान की नहीं। शीट को रो में पढ़ा जाता है, कॉलम में बदला जाता है और लिखा जाता है, इसलिए पूरी टेबल एक साथ मौजूद रहती है — दसियों मेगाबाइट सामान्य है।

XLSX को Parquet में ऐसे बदलें

  1. अपनी XLSX फ़ाइल इस पेज पर छोड़ें, या चुनने के लिए दबाएँ।
  2. लक्ष्य के रूप में Parquet चुनें। कन्वर्ज़न आपके ब्राउज़र में होता है और फ़ाइल अपलोड नहीं होती।
  3. तैयार Parquet फ़ाइल डाउनलोड कर लें।

XLSX या Parquet: क्या बदलता है

XLSX और Parquet की तुलना
XLSXParquet
पूरा नामExcel वर्कबुकApache Parquet
फ़ाइल एक्सटेंशन.xlsx.parquet
मीडिया टाइपapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/vnd.apache.parquet
कंप्रेशनबिना नुक़सान — कुछ छोड़ा नहीं जाता
पहली बार प्रकाशित20072013
प्रकाशकMicrosoftApache Software Foundation
विनिर्देशECMA-376
लाइसेंसखुला मानकखुला मानक
आज की स्थितिमौजूदामौजूदा
ब्राउज़र में खुलता हैकोई ब्राउज़र नहींकोई ब्राउज़र नहीं
इसकी जगह विचारणीयCSV, ODSCSV, JSON

क्या खो जाता है

स्प्रेडशीट एक तय पन्ना बन जाती है। फ़ॉर्मूले उसके बाद फ़ॉर्मूले नहीं रहते, सिर्फ़ अपना आख़िरी नतीजा रह जाते हैं, और पन्ना कहाँ टूटेगा यह शीट नहीं बल्कि प्रिंट क्षेत्र तय करता है — इसीलिए चौड़ी XLSX फ़ाइल Parquet में अक्सर कई पन्नों पर बँटकर आती है।

नतीजा खोलना

दोनों तरफ़ के प्रोग्राम अलग हैं: XLSX फ़ाइल Microsoft Excel, LibreOffice Calc और Google Sheets में खुलती है और Parquet फ़ाइल pandas, Apache Spark और DuckDB में — यानी नतीजा जिसके पास जाएगा, उसे दूसरी सूची में से कोई प्रोग्राम चाहिए होगा।

कौन-सा फ़ॉर्मेट किस काम के लिए है

दोनों का निशाना अलग काम है: XLSX का एडिटिंग पर, Parquet का सहेजना और प्रोग्रामों के बीच डेटा ले जाना पर। इस पर सोचना बनता है, क्योंकि जिस वजह से एक मौजूद है, आम तौर पर उसी वजह से दूसरा असुविधाजनक होता है।

XLSX Microsoft का फ़ॉर्मेट है, जो 2007 में आया। यह ECMA-376 में तय किया गया है, और अगर फ़ाइल को उस औज़ार से ज़्यादा जीना है जिसने उसे लिखा, तो यह बात क़ीमती है।

Parquet Apache Software Foundation का है और 2013 से चला आ रहा है। pandas, Apache Spark और DuckDB इस फ़ॉर्मेट को पढ़ लेते है।

XLSX से Parquet: आम सवाल

क्या मेरी XLSX फ़ाइल कहीं अपलोड होती है?

नहीं। यह कन्वर्ज़न पूरी तरह आपके ब्राउज़र में होता है, इसलिए फ़ाइल आपके डिवाइस से बाहर नहीं जाती। आप ख़ुद जाँच सकते हैं: डेवलपर टूल्स का नेटवर्क टैब खोलिए और कुछ बदल कर देखिए। आपको पेज ख़ुद दिखेगा और आँकड़ों तथा विज्ञापन के वे अनुरोध दिखेंगे जिनसे इस सेवा का ख़र्च निकलता है — और एक भी ऐसा अनुरोध नहीं जो आपकी फ़ाइल साथ ले जा रहा हो। इस जोड़ी के पीछे parquet-wasm है, Apache Arrow के पाठक का एक WebAssembly संस्करण; आपका ब्राउज़र इसे एक बार उतारता है और फिर सहेज कर रखता है।

क्या XLSX को Parquet में बदलना मुफ़्त है?

हाँ। न खाता, न वॉटरमार्क, और न कोई रोज़ का कोटा जो ख़त्म हो: यह आपकी अपनी मशीन पर चलता है, इसलिए आप जितनी बार चाहें लौट सकते हैं। ब्राउज़र 100 MB तक की फ़ाइलें सँभालता है, एक बार में 100। parquet-wasm आपकी अपनी मशीन पर उतरता है और वहीं चलता है — इसीलिए उस पर कोई गिनती नहीं है।

XLSX को Parquet में बदलने पर क्या गुणवत्ता जाती है?

XLSX और Parquet सामग्री का वर्णन बुनियादी तौर पर अलग-अलग तरीक़ों से करते हैं। इसलिए यह कन्वर्ज़न नक़ल नहीं, पुनर्निर्माण है: ईमानदार, पर बाइट-दर-बाइट एक जैसा नहीं। सिर्फ़ पहली शीट पढ़ी जाती है, और उसमें भी सिर्फ़ मान। सूत्र, फ़ॉर्मैटिंग, कॉलम की चौड़ाई और पहली के बाद की हर शीट पीछे रह जाती है।

XLSX फ़ाइल Parquet बनने पर उसका क्या होता है?

स्प्रेडशीट एक तय पन्ना बन जाती है। फ़ॉर्मूले उसके बाद फ़ॉर्मूले नहीं रहते, सिर्फ़ अपना आख़िरी नतीजा रह जाते हैं, और पन्ना कहाँ टूटेगा यह शीट नहीं बल्कि प्रिंट क्षेत्र तय करता है — इसीलिए चौड़ी XLSX फ़ाइल Parquet में अक्सर कई पन्नों पर बँटकर आती है।

इन फ़ॉर्मेट के बारे में और