我已经复制了一个有效的示例,并且对其进行了一些更改,但是核心始终是相同的,但是在StructField点中始终出现此错误:


无法解析具有此类签名的引用StructField


并在签名内给了我这个:


类型不匹配,应为:数据类型,实际为StringType


这是我遇到问题的代码部分:

import org.apache.avro.generic.GenericData.StringType
import org.apache.spark
import org.apache.spark.sql.types.StructField
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.types._
     object Test{

      def main(args: Array[String]): Unit = {

             val file = "/home/ubuntu/spark/MyFile"
                val conf = new SparkConf().setAppName("Test")
                val sc = new SparkContext(conf)
                val read = sc.textFile(file)
                val header = read.first().toString
                //generate schema from first csv row
                val fields = header.split(";").map(fieldName => StructField(fieldName.trim, StringType, true))
                val schema = StructType(fields)
    }
    }


我不明白我在哪里错。
我正在使用Spark版本2.0.0

谢谢

最佳答案

看来GenericData.StringType是个问题。使用别名:

import org.apache.avro.generic.GenericData.{StringType => AvroStringType}


或删除此导入(您不使用它)。

关于scala - 无法解析具有此类签名的引用StructField,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39996336/

10-12 19:52