Через DataFrameReader/Writer: spark.read.format(...).load, df.write.mode(...).save. Форматы parquet/orc/json/csv; опции schema, header, compression.
Разбор
- Parquet/ORC предпочтительны для аналитики.
- mode: append/overwrite/ignore/errorifexists.
- partitionBy при записи создаёт directory layout.
- Схема: infer vs явная — для prod явная безопаснее.
Пример
df = spark.read.parquet("s3://bucket/path")
df.write.mode("overwrite").parquet("s3://out")
Итог
Чтение/запись идёт через unified reader/writer с форматом, mode и схемой.