Я новичок в Spark и Scala. Я застрял в этом исключении. Я пытаюсь добавить дополнительные поля, то есть StructField, в существующий StructType, полученный из Кадр данных для столбца с использованием Spark SQL и gettting ниже исключения.org.apache.spark.sql.types.DataTypeException: Unsupported dataType: IntegerType
фрагмент кода:
val dfStruct:StructType=parquetDf.select("columnname").schema
dfStruct.add("newField","IntegerType",true)
Исключение в потоке «главный»
org.apache.spark.sql.types.DataTypeException: Unsupported dataType: IntegerType. If you have a struct and a field name of it has any special characters, please use backticks (`) to quote that field name, e.g. `x+y`. Please note that backtick itself is not supported in a field name.
at org.apache.spark.sql.types.DataTypeParser$class.toDataType(DataTypeParser.scala:95)
at org.apache.spark.sql.types.DataTypeParser$$anon$1.toDataType(DataTypeParser.scala:107)
at org.apache.spark.sql.types.DataTypeParser$.parse(DataTypeParser.scala:111)
Я вижу там некоторые открытые вопросы, работающие на JIRA, связанных с этим исключением, но не в состоянии многое понять. Я использую Спарк 1.5.1 версия
https://mail-archives.apache.org/mod_mbox/spark-issues/201508.mbox/%[email protected]A%3E
https://mail-archives.apache.org/mod_mbox/spark-issues/201508.mbox/%[email protected]A%3E
https://issues.apache.org/jira/browse/SPARK-9685
Спасибо за быстрый ответ zero323, я могу теперь добавить StructFiled к существующим StructType. Причина в том, что моя IDE не импортировала «import org.apache.spark.sql.types._», следовательно, не удалось скомпилировать этот код StructType ( StructField («column1», DoubleType, false) :: StructField (" column2" , DoubleType, ложь) :: StructField ("колонка3", StringType, ложь) :: Nil) \t поэтому я был Tyring с апи dfStruct.add ("Ньюфилд", "IntegerType", правда) \t после записи инструкции import вручную я могу исправить эту проблему. – nilesh1212