【问题标题】:creating sparksession using builder?使用构建器创建 sparksession?
【发布时间】:2017-09-26 02:22:42
【问题描述】:

如何在 Java 中使用 builder 创建 sparkSession ?我试过这个:

sparkSession = SparkSession.builder()
    .master("local[*]")
    .config(conf)
    .appName(appName)
    .getOrCreate();

但我在“getOrCreate”中遇到异常。有什么方法可以使用 JavaSparkContext/ SparkContext 创建火花会话?

线程“main”中的异常 java.lang.NoSuchMethodError: org.apache.hadoop.security.UserGroupInformation.getCurrentUser()Lorg/apache/hadoop/security/UserGroupInformation; 在 org.apache.spark.util.Utils$$anonfun$getCurrentUserName$1.apply(Utils.scala:2373) 在 org.apache.spark.util.Utils$$anonfun$getCurrentUserName$1.apply(Utils.scala:2373) 在 scala.Option.getOrElse(Option.scala:121) 在 org.apache.spark.util.Utils$.getCurrentUserName(Utils.scala:2373) 在 org.apache.spark.SparkContext.(SparkContext.scala:295) 在 org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2313) 在 org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:868) 在 org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:860) 在 scala.Option.getOrElse(Option.scala:121) 在 org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:860)

【问题讨论】:

    标签: java apache-spark-sql apache-spark-mllib


    【解决方案1】:

    您可以在 Java 中创建 Spark 会话对象

    import org.apache.spark.sql.SparkSession;
    // Inside class
     SparkSession spark = SparkSession
          .builder()
          .appName("Application Name")
          .config("some-config", "some-value")
          .getOrCreate();
    

    这应该可行。如果这不起作用,您可以粘贴整个代码,以便我们找出问题所在。

    【讨论】:

      【解决方案2】:
          SparkConf conf= new SparkConf().setAppName("Java Spark").setMaster("local[*]");
      
          SparkSession spark = SparkSession
                  .builder()
                  .config(conf)
                  .getOrCreate();
      
          JavaSparkContext sc = new JavaSparkContext();
          JavaRDD<String> lines=sc.textFile("E://Car.txt");
          JavaRDD<String> filteredLines = lines.filter(new Function<String, Boolean>() {
      
              @Override
              public Boolean call(String arg0) throws Exception {
                  // TODO Auto-generated method stub
                  return null;
              }
          });
      

      【讨论】:

      • 欢迎来到 Stack Overflow!请不要只用源代码回答。尝试对您的解决方案如何工作提供一个很好的描述。请参阅:How do I write a good answer?。谢谢
      • 这会创建一个空的上下文对象,我认为代码应该更新为 JavaSparkContext sc = spark.sparkContext();
      • SparkSession 在该代码中似乎没有任何作用...
      【解决方案3】:

      检查 SparkSession 的 Java API,以下代码应该可以工作。

      SparkSession.builder()
           .master("local")
           .appName("App Name")
           .config("spark.some.config.option", "some-value").
           .getOrCreate()
      

      https://spark.apache.org/docs/2.0.1/api/java/org/apache/spark/sql/SparkSession.html

      【讨论】:

        猜你喜欢
        • 2022-01-23
        • 1970-01-01
        • 2018-09-23
        • 1970-01-01
        • 2020-11-13
        • 1970-01-01
        • 2017-02-08
        • 2021-11-11
        • 1970-01-01
        相关资源
        最近更新 更多