我有一个简单的scala maven模块,它是一个更大的项目的一部分(我按照这里描述创建它:https://www.jetbrains.com/help/idea/2016.2/creating-a-maven-module.html):
package com.myorg.simplr
import [...]
@SerialVersionUID(100L)
case class Simplr (){
//class code
}
我试图在spark shell中使用这个类,所以我构建了一个jar文件" simplr-1.0.jar"并使用--jars simplr-1.0.jar启动了火花外壳。
然后,当我尝试导入时,我得到以下
scala> import com.myorg.simplr.Simplr
<console>:25: error: object myorg is not a member of package com
import com.myorg.simplr.Simplr
^
如何让导入工作?
我用maven构建,这是我的pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>my-parent-project</artifactId>
<groupId>com.myorg</groupId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>simplr</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.10</artifactId>
<version>1.6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.10</artifactId>
<version>1.6.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
答案 0 :(得分:2)
请确保以下几点可行
1.像./spark-shell --jars jar_path
一样启动火花壳
2.你导入的同一个包下的jar中有类文件,打开jar并检查它。
3.启动火花后转到http://localhost:4040/environment/,您的jar将在类路径条目中。