An Azure analytics service that brings together data integration, enterprise data warehousing, and big data analytics. Previously known as Azure SQL Data Warehouse.
Hi Shinde, Dushyant,
Thank you for reaching Microsoft Q&A! and for the detailed screenshots and configuration. What you are observing is expected behavior when Azure Synapse Mapping Data Flow writes a single Parquet file to Azure Blob Storage using a dynamic folder path and an integration dataset.
Azure Blob Storage does not have a true hierarchical file system. The folders shown in the portal are only a visual interpretation of blob names that contain /. When Mapping Data Flow (Spark runtime) writes to Blob with:
Dynamic directory path (for example: customer_no/month_folder)
File name option = Output to single file
Integration dataset sink
Parquet format
the Spark commit protocol creates 0-byte path marker blobs at each directory level before committing the final file. These blobs have the same names as the folder segments, which is why the portal shows them as both a folder and a 0-byte file.
Example of what Spark writes internally:
enriched-metric-reports/341 ← marker blob (0 bytes)
enriched-metric-reports/341/January-2026 ← marker blob (0 bytes)
enriched-metric-reports/341/January-2026/file.parquet
This is by design and comes from the Spark FileOutputCommitter behavior when writing to non-hierarchical storage such as Azure Blob. It is not a Synapse defect and does not indicate data corruption.
This behavior does not occur when:
Writing to ADLS Gen2 (true hierarchical namespace)
Using an inline dataset sink
Allowing Spark to write multiple partition files instead of a single file
The 0-byte blobs are expected Spark path markers required for committing the file to Azure Blob Storage and can be safely ignored. If you want to avoid these marker blobs entirely, the recommended approach is to use ADLS Gen2 or change the sink configuration (inline dataset or multi-file output).