我在IntelliJ中有一个具有简单文件夹结构的scala项目
src/core/CommonCSVReader.scala
我在program.scala
下有一个src/
文件
我从集成终端运行Spark-shell,并尝试运行:load program.scala
我收到以下错误:
对象CommonCSVReader不是包核心的成员
即使我退出spark-shell并尝试运行scala program.scala
我也遇到同样的问题,我想尝试从intelliJ运行program.scala
,但是如果我右键单击program.scala,我不会没有“运行ScalaApp”选项,只有运行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()
}
}
答案 0 :(得分:0)
您需要添加
package core
到CommonCSVReader.scala
的开头。
仅仅将其放在文件夹中是不够的。
编辑:
我也刚刚注意到,您没有将软件包放在scala文件夹中。 “常规”路径为:
src/main/scala/<packages>
尽管我不确定这是否有影响
答案 1 :(得分:0)
program.scala
import core.CommonCSVReader
object program extends App {
val path:String = "some/path"
val reader = new CommonCSVReader(path)
reader.Read()
}
似乎我必须扩展App,现在,当我右键单击program.scala
时,我可以选择run 'program'
,它可以正常工作,但不能在终端上运行