java.lang.RuntimeException: java.lang.La chaîne n'est pas valide externe type de schéma de type bigint ou int

Je suis à la lecture du schéma de la trame de données à partir d'un fichier texte. Le fichier ressemble à

id,1,bigint
price,2,bigint
sqft,3,bigint
zip_id,4,int
name,5,string

et je suis cartographie analysé les types de données à susciter des types de données Sql.Le code pour la création de trame de données est -

var schemaSt = new ListBuffer[(String,String)]()
//read schema from file
for (line <- Source.fromFile("meta.txt").getLines()) {
  val word = line.split(",")
  schemaSt += ((word(0),word(2)))
}

//map datatypes
val types = Map("int" -> IntegerType, "bigint" -> LongType)
      .withDefault(_ => StringType)
val schemaChanged = schemaSt.map(x => (x._1,types(x._2))

//read data source
val lines = spark.sparkContext.textFile("data source path")

val fields = schemaChanged.map(x => StructField(x._1, x._2, nullable = true)).toList

val schema = StructType(fields)

val rowRDD = lines
  .map(_.split("\t"))
  .map(attributes => Row.fromSeq(attributes))

//Apply the schema to the RDD
val new_df = spark.createDataFrame(rowRDD, schema)
new_df.show(5)
new_df.printSchema()

mais le ci-dessus ne fonctionne que pour les Chaînetapez. Pour IntegerType et LongType, c'est de lever des exceptions -

java.lang.RuntimeException: java.lang.La chaîne n'est pas valide externe type de schéma de type int

et

java.lang.RuntimeException: java.lang.La chaîne n'est pas valide externe type de schéma de type bigint.

Merci d'avance!

OriginalL'auteur Naren | 2017-02-01