将我的罐子导入火花壳

时间:2016-11-29 10:34:19

标签: java scala maven apache-spark

我有一个简单的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>

1 个答案:

答案 0 :(得分:2)

请确保以下几点可行 1.像./spark-shell --jars jar_path一样启动火花壳 2.你导入的同一个包下的jar中有类文件,打开jar并检查它。 3.启动火花后转到http://localhost:4040/environment/,您的jar将在类路径条目中。