Como criar um esquema a partir do arquivo CSV e persistir / salvar esse esquema em um arquivo?

Eu tenho arquivo CSV com 10 colunas. Half String e half são Inteiros.

Qual é o código Scala para:

Criar (inferir) o esquemaSalve esse esquema em um arquivo

Eu tenho isso até agora:

import org.apache.spark.sql.SQLContext

val sqlContext = new SQLContext(sc)
val df = sqlContext.read
    .format("com.databricks.spark.csv")
    .option("header", "true") // Use first line of all files as header
    .option("inferSchema", "true") // Automatically infer data types
    .load("cars.csv")

E qual é o melhor formato de arquivo para salvar esse esquema? É JSON?

O objetivo é - eu quero criar o esquema apenas uma vez e na próxima vez que carregar de um arquivo, em vez de recriá-lo rapidamente.

Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion