No. According to the Spark security documentation, local disk encryption covers shuffle, spill and cache or broadcast data on local disks, and it does not cover encrypting output data written by calls like saveAsTable. Protect output tables with storage level encryption and access control instead.
What the setting covers
The setting is spark.io.encryption.enabled. The docs describe it as encrypting temporary data Spark writes to local disks during a job. That includes shuffle files, spilled data and cached or broadcast blocks.
It is useful for sensitive jobs on shared machines, because leftover files in scratch space are a classic exposure. The docs also say it is strongly recommended that RPC encryption be enabled alongside it.
What it does not cover
The same page says the feature "does not cover encrypting output data" written through saveAsTable and similar APIs. Your tables, files and exports land wherever the storage layer puts them, in whatever form that layer holds them.
So a team can turn the setting on, tick a box in a questionnaire, and still have unencrypted output in object storage or a warehouse stage. Cover each place data rests:
| Where data sits | What protects it |
|---|---|
| Local scratch during a job | The Spark IO encryption setting |
| Traffic between nodes | RPC encryption (SSL preferred per the docs) |
| Output tables and files | Storage encryption and access control |
| Logs and event files | Log access controls and redaction |
How to check your own setup
- Read your Spark configuration for the IO encryption setting. Note the value per environment.
- Check RPC encryption and authentication settings. The docs describe SSL as the standardized and considered more secure option.
- Find where output lands. List buckets, volumes and tables your jobs write to.
- Confirm encryption at rest on each, and who holds the keys.
- Check who can read the output. Encryption does not help if too many principals can decrypt transparently.
Answering a questionnaire honestly
If a buyer asks whether data is encrypted at rest in your Spark platform, split the answer by layer. For example: local scratch data is encrypted by a documented Spark setting, and output data is encrypted by the storage service. Do not stretch the Spark setting to cover output. Check what is actually enabled before you answer.
Where dependencies fit
This is a configuration topic, but its link to dependencies is access. If a library in a job is compromised, it runs with the job's permissions and reads data after Spark has decrypted it in memory. Encryption at rest does not stop that. Limiting what each job can read does.
Safeguard's SBOM and dependency scanning and reachability analysis can help you decide which Spark jobs carry exploitable packages, so you can narrow permissions where risk is highest. The free scan at https://gold.safeguard.sh/scan is a quick starting point.
Quick check
Does the setting encrypt shuffle data?
Yes, per the docs it covers shuffle, spill and cache or broadcast data on local disk.
Is RPC encryption separate?
Yes. It protects traffic between nodes, and the docs recommend enabling it alongside local disk encryption.
Sources
Last reviewed: 19 October 2026.