Apache Parquet Schema Definition File
Define column structure, types, and repetition for efficient columnar storage.
Field Definition
Current Schema Fields
Apache Parquet Schema Specification
Generated for:
No fields defined.
'; return; } schemaFields.forEach(f => { const item = document.createElement('div'); item.className = 'parquet-list-item bg-gray-50'; item.innerHTML = ` ${escapeHtml(f.repetition)} ${escapeHtml(f.type)} ${escapeHtml(f.name)} ${escapeHtml(f.annotation)} `; list.appendChild(item); }); } // --- Code Generation --- function parquetGenerateCode() { const date = new Date().toLocaleDateString('en-US'); const fileName = "parquet_schema_definition"; let code = `//-------------------------------------------------------------------------- // Schema Generated: ${date} // Purpose: Defines column structure for file: ${fileName}.parquet //-------------------------------------------------------------------------- message DocumentRoot { `; schemaFields.forEach((f, index) => { const rep = `${f.repetition}`; const type = `${f.type}`; const name = `${f.name}`; const annotation = f.annotation ? ` ${f.annotation}` : ''; code += ` ${rep} ${type} ${name}${annotation}; `; }); code += `}\n`; document.getElementById('parquet-schema-output').innerHTML = code; document.getElementById('disp-file-name').textContent = fileName + ".parquet"; } // --- PDF Download --- window.parquetDownloadPDF = function() { // Ensure code is generated before downloading parquetGenerateCode(); const element = document.getElementById('parquet-print-area'); const fileName = document.getElementById('disp-file-name').textContent.replace('.parquet', ''); document.body.classList.add('parquet-generating-pdf'); const opt = { margin: [0.5, 0.5], filename: `${fileName}_Schema.pdf`, image: { type: 'jpeg', quality: 0.98 }, html2canvas: { scale: 2, useCORS: true }, jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' } }; html2pdf().set(opt).from(element).save().then(() => { document.body.classList.remove('parquet-generating-pdf'); }); }; // Utility: HTML Escape (Only necessary for display outside of the code block) function escapeHtml(text) { if (!text) return ''; return text.replace(/[&<>"']/g, function(m) { switch (m) { case '&': return '&'; case '<': return '<'; case '>': return '>'; case '"': return '"'; case "'": return '''; default: return m; } }); }