Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java apachespark:NoSuchMethodError_Java_Maven_Apache Spark - Fatal编程技术网

Java apachespark:NoSuchMethodError

Java apachespark:NoSuchMethodError,java,maven,apache-spark,Java,Maven,Apache Spark,我试图在Apache Spark(v1.3.0)上进行一些测试,我有一个简单的Java 8类: public class WordCount { private JavaSparkContext ctx; private String inputFile, outputFile; public WordCount(String inputFile, String outputFile) { this.inputFile = inputFile;

我试图在Apache Spark(v1.3.0)上进行一些测试,我有一个简单的Java 8类:

public class WordCount {
    private JavaSparkContext ctx;
    private String inputFile, outputFile;
    public WordCount(String inputFile, String outputFile) {
        this.inputFile = inputFile;
        this.outputFile = outputFile;
        // Initialize Spark Conf
        ctx = new JavaSparkContext("local", "WordCount",
                System.getenv("SPARK_HOME"), System.getenv("JARS"));

    }

    public static void main(String... args) {
        String inputFile = "/home/workspace/spark/src/main/resources/inferno.txt";//args[0];
        String outputFile = "/home/workspace/spark/src/main/resources/dv";//args[1];
        WordCount wc = new WordCount(inputFile, outputFile);
        wc.doWordCount();
        wc.close();
    }

    public void doWordCount() {
        long start = System.currentTimeMillis();
        JavaRDD<String> inputRdd = ctx.textFile(inputFile);
        JavaPairRDD<String, Integer> count = inputRdd.flatMapToPair((String s) -> {
            List<Tuple2<String, Integer>> list = new ArrayList<>();
            Arrays.asList(s.split(" ")).forEach(s1 -> list.add(new Tuple2<String, Integer>(s1, 1)));
            return list;
        }).reduceByKey((x, y) -> x + y);
        Tuple2<String, Integer> max = count.max(new Tuple2Comparator());
        System.out.println(max);
//      count.saveAsTextFile(outputFile);
        long end = System.currentTimeMillis();
        System.out.println(String.format("Time in ms is: %d", end - start));
    }

    public void close() {
        ctx.stop();
    }

}
这是mi pom文件:

<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">
    <groupId>it.conker.spark</groupId>
    <artifactId>learning-spark-by-example</artifactId>
    <modelVersion>4.0.0</modelVersion>
    <name>Learning Spark by example</name>
    <packaging>jar</packaging>
    <version>0.0.1</version>
    <dependencies>
        <dependency> <!-- Spark dependency -->
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.10</artifactId>
            <version>1.3.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

它,康克,斯帕克
以身作则
4.0.0
以身作则
罐子
0.0.1
org.apache.spark
spark-core_2.10
1.3.0
假如
朱尼特
朱尼特
4.11
测试
1.8
org.apache.maven.plugins
maven编译器插件
3.1
${java.version}
${java.version}
我在eclipse中运行这个类。
有人能告诉我哪里错了吗?

我相信这是一个错误,它将在所有即将发布的Spark maintenance版本中修复(请参阅我的)


我没有测试过的一种解决方法是在调用
max()
之前将
count
转换为
JavaRDDLike
,因为类似的解决方法也适用于其他人(请参阅我的).

您应该更改spark的依赖范围,使其成为编译范围,如果您尝试在本地计算机上运行,它将正常工作。

嗨,Josh,我在spark-1.4和spark streaming中遇到了类似的错误,我相信尚未添加修复程序。你的变通方法到底是如何运作的?我不明白,你能详细解释一下吗?这是我在stackoverflow-@tsar2512中的问题:你能在Spark的JIRA问题跟踪程序上对此提交一张罚单吗@乔希·罗森-可以。。。顺便问一下,你的变通方法还有效吗?您能进一步解释一下吗?我可以确认此解决方案仍然有效,但我想知道它为什么有效,因此如果有人知道,我将非常感谢他们的解释。@randombee,有关此解决方案历史的更多背景信息,请参阅与此Spark问题相关的Scala bug。
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.spark.api.java.JavaPairRDD.max(Ljava/util/Comparator;)Lscala/Tuple2;
        at it.conker.spark.base.WordCount.doWordCount2(WordCount.java:69)
        at it.conker.spark.base.WordCount.main(WordCount.java:41)
<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">
    <groupId>it.conker.spark</groupId>
    <artifactId>learning-spark-by-example</artifactId>
    <modelVersion>4.0.0</modelVersion>
    <name>Learning Spark by example</name>
    <packaging>jar</packaging>
    <version>0.0.1</version>
    <dependencies>
        <dependency> <!-- Spark dependency -->
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.10</artifactId>
            <version>1.3.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>