Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/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
找不到适用于零实际参数的构造函数/方法-Apache Spark Java_Java_Apache Spark_Apache Spark Sql_Spark Dataframe_Apache Spark Dataset - Fatal编程技术网

找不到适用于零实际参数的构造函数/方法-Apache Spark Java

找不到适用于零实际参数的构造函数/方法-Apache Spark Java,java,apache-spark,apache-spark-sql,spark-dataframe,apache-spark-dataset,Java,Apache Spark,Apache Spark Sql,Spark Dataframe,Apache Spark Dataset,在运行时,我的spark工作一直面临着奇怪的错误。我看不出MyBean类有什么问题,知道下面的驱动程序代码有什么问题吗?谢谢 Maven依赖项- <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.10</artifactId> <version>2.1.0</version> </dep

在运行时,我的spark工作一直面临着奇怪的错误。我看不出MyBean类有什么问题,知道下面的驱动程序代码有什么问题吗?谢谢

Maven依赖项-

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.10</artifactId>
    <version>2.1.0</version>
</dependency>

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-sql_2.10</artifactId>
    <version>2.1.0</version>
</dependency>
SparkSession spark = SparkSession.builder().config(conf).getOrCreate();
spark.createDataset(Arrays.asList(new MyBean(10),new MyBean(20)),
      Encoders.bean(MyBean.class)).show();

运行时异常-

错误 org.codehaus.commons.compiler.CompileException:org.apache.spark.sql.catalyst.expressions.codegen.codegener org.codehaus.commons.compiler.CompileException:文件'generated.java', 第43行第21列:未找到适用于零的构造函数/方法 实际参数;候选人是:“公共int” com.ts.spark.datasets.MyBean.getI()”位于 org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:11004) 在 org.codehaus.janino.UnitCompiler.findMostSpecificIIInvocable(UnitCompiler.java:8307) 在 org.codehaus.janino.UnitCompiler.findIMethod(UnitCompiler.java:8169) 在 org.codehaus.janino.UnitCompiler.findIMethod(UnitCompiler.java:8071)


Spark需要公共JavaBean类。看起来您正在创建
SparkSession
的同一个类中定义
MyBean
类。解决此问题有两种选择。第一个选项是为
MyBean.java
public类创建一个单独的类文件

public class MyBean implements Serializable {
    int i;
    //Getters and Setters
}
第二个选项是-将
MyBean
定义为主类的公共静态内部类,如下所示

public class MyClass {
    public static void main(String[] args) {
        SparkSession spark = ...;
    }

    public static class MyBean implements Serializable {
        int i;  
        //Getters and Setters
    }
}

当我的类定义缺少默认构造函数时,我遇到了类似的错误

添加下面的内容对我很有用-
public myclass(){}

对我来说,这只在我将所有数据成员定义为字符串时起作用,如果我定义Integer或int,则他无法找到正确的setter。。有什么想法吗?
public class MyClass {
    public static void main(String[] args) {
        SparkSession spark = ...;
    }

    public static class MyBean implements Serializable {
        int i;  
        //Getters and Setters
    }
}