为什么是;错误:未找到:值StructType";在sql模式创建时?

为什么是;错误:未找到:值StructType";在sql模式创建时?,sql,scala,apache-spark,Sql,Scala,Apache Spark,我在CentOS 6.2上安装了Spark的CDH5 1.0.0版,并且运行正常 当尝试运行一些Spark SQL时,我遇到了一个错误。我开始我的火花壳很好 spark-shell --master spark://mysparkserver:7077 然后,我运行位于的编程指南中的一个示例Scala脚本 但进口声明似乎不起作用?因为最后一行给出了一个错误 scala> StructType <console>:14: error: not found: value Stru

我在CentOS 6.2上安装了Spark的CDH5 1.0.0版,并且运行正常

当尝试运行一些Spark SQL时,我遇到了一个错误。我开始我的火花壳很好

spark-shell --master spark://mysparkserver:7077
然后,我运行位于的编程指南中的一个示例Scala脚本

但进口声明似乎不起作用?因为最后一行给出了一个错误

scala> StructType
<console>:14: error: not found: value StructType
              StructType
              ^
scala>StructType
:14:错误:未找到:值StructType
结构类型
^
我知道
StructType
org.apache.spark.sql.api.java.StructType
。如果我用全名替换模式行中的
StructType
,则错误会更改


还有其他人遇到过这个错误吗?我是否还缺少一个额外的步骤

您的问题是,您正在阅读最新版本Spark的编程指南,并在Spark 1.0.0上试用它。唉,
org.apache.spark.sql.api.java.StructType
是在spark 1.1.0中引入的,关于“以编程方式指定模式”的部分也是如此

因此,如果不升级,您将无法做到这一点——除非您能够利用1.0.0指南“在RDD上运行SQL”一节中的技术,在1.1.0中,这一节称为“使用反射推断模式”。(基本上,如果您可以容忍固定的模式。)


如果查看各种文档URL,您希望将
最新的
替换为
1.0.0
。当有疑问时,我喜欢使用多个版本的API文档和搜索。我注意到,与javadoc一样,scaladoc有一个
@since
注释,用于在API文档中更清晰地显示这些信息,但它没有在Spark API文档中使用

即使在spark 3.0.0中,我也遇到过这个问题

请使用下面的导入

scala>导入org.apache.spark.sql.types.\ubr/> 导入org.apache.spark.sql.types_

scala>val schema=StructType(数组(StructField(“语言”),StringType,true), |StructField(“语言”,StringType,true))
架构:org.apache.spark.sql.types.StructType=StructType(StructField(语言,StringType,true),StructField(语言,StringType,true))

scala> StructType
<console>:14: error: not found: value StructType
              StructType
              ^