Snappy is actually not splittable as bzip, but when used with file formats like parquet or Avro, instead of compressing the entire file, blocks inside the file format are compressed using snappy.
To understand what is happening when you're compressing a parquet file with snappy compression, check the structure of a parquet file [source link]

Inside a parquet file, records are split into row-groups [basically a subset of rows from the original file], and each row-groups are composed of data-pages [Column chunks in image], each column chunk is composed of many pages where actual records are stored in encoded format[columnar] with metadata. when you enable snappy compression it compresses entire pages! not the entire file. basically you are getting a splittable parquet with snappy compression.
The advantage of snappy is that it is a very light weighted compression codec.
Note: There is a default size limit to row-groups and columns chunks, 128MB and 1MB respectively [you can alter these defaults setting], you can use a different compression codec with parquet e.g. gzip