使用生成器创建 sparksession?

creating sparksession using builder?

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

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

但我在 "getOrCreate" 中遇到异常。有什么方法可以使用 JavaSparkContext/ SparkContext 创建 spark 会话吗?

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.security.UserGroupInformation.getCurrentUser()Lorg/apache/hadoop/security/UserGroupInformation; at org.apache.spark.util.Utils$$anonfun$getCurrentUserName.apply(Utils.scala:2373) at org.apache.spark.util.Utils$$anonfun$getCurrentUserName.apply(Utils.scala:2373) at scala.Option.getOrElse(Option.scala:121) at org.apache.spark.util.Utils$.getCurrentUserName(Utils.scala:2373) at org.apache.spark.SparkContext.(SparkContext.scala:295) at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2313) at org.apache.spark.sql.SparkSession$Builder$$anonfun.apply(SparkSession.scala:868) at org.apache.spark.sql.SparkSession$Builder$$anonfun.apply(SparkSession.scala:860) at scala.Option.getOrElse(Option.scala:121) at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:860)

您可以在 Java 中创建 spark 会话对象,如

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

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

检查 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

    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;
        }
    });