我在IntelliJ中有一个带有简单文件夹结构的scala项目src/core/CommonCSVReader.scala
我在src/
下有一个program.scala
文件我从集成终端运行spark shell,并尝试运行:load program.scala
我得到以下错误:
对象CommonCSVReader不是包核心的成员
即使我退出spark shell并尝试运行scala program.scala
,我也遇到了同样的问题,我想尝试从intelliJ运行program.scala
,但如果我右键单击program.scala,我没有run ScalaApp选项,只有run scala控制台,它刚刚启动scala控制台。我在这里找不到我缺少的东西,谢谢你,
program.scala
import core.CommonCSVReader
object program {
def main():Unit = {
val path:String = "some/path"
val reader = new CommonCSVReader(path)
reader.Read()
}
}
编辑:请在下面找到CommonCSVReader类:
package core
import org.apache.spark.sql.SparkSession
class CommonCSVReader(filename:String) extends ParserFileReader(filename) {
val spark = SparkSession.builder().config("spark.master",
"local").getOrCreate()
def Read():Unit = {
val df = spark.read.option("header", "true").option("inferSchema",
"true").csv(filename)
//Show Schema
df.printSchema()
}
}
您需要添加
package core
到CCD_ 7的开始。仅仅把它放在文件夹里是不够的。
编辑:
我还注意到,您没有将包放在scala文件夹中。"常用"路径是:
src/main/scala/<packages>
虽然我不确定这是否会影响
program.scala
import core.CommonCSVReader
object program extends App {
val path:String = "some/path"
val reader = new CommonCSVReader(path)
reader.Read()
}
似乎我必须扩展应用程序,现在当我右键单击program.scala
时,我可以选择run 'program'
,它可以正常工作,但不能从终端