IntelliJ scala项目导入

时间:2018-07-14 08:37:20

标签: scala apache-spark intellij-idea intellij-plugin intellij-14

我在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()
  }
 }

2 个答案:

答案 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',它可以正常工作,但不能在终端上运行