Как загрузить схему таблицы в scala из csv-файла

#scala #bigdata

Вопрос:

У меня есть содержимое файла csv, как показано ниже —

 id,Integer,nullable
name,String,non-nullable
doj,Date,nullable
 

Я хочу использовать эту схему при чтении/загрузке таблицы в Scala.

В настоящее время мы знаем, что создание StructType(Array(StructField(...))) в коде работает, например.

 import org.apache.spark.sql.types._

val customSchema = StructType(Array(   
 StructField("id", IntegerType, true),   
 StructField("name", String, false),   
 StructField("doj",Date, true)) )
 
val pagecount = sqlContext.read.format("csv").option("delimiter"," ").option("quote","")   
 .option("header", "true")  
 .schema(customSchema)   .load("hdfs://file_location/file.csv")
 

Существует возможность —

 .option("inferSchema", "true")
 

но мы явно хотим загрузить его из csv-файла, чтобы повторно использовать код.