使用建设者创造火花?

时间:2017-04-28 04:51:35

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

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

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

但我在“getOrCreate”中遇到异常。有没有办法使用JavaSparkContext / SparkContext创建一个spark会话?

  

线程“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)

3 个答案:

答案 0 :(得分:1)

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

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

这应该有效。如果这不起作用,你可以粘贴整个代码,以便我们可以弄清楚出了什么问题。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

{
  "val1": "test1",
  "val2": "test2",
  "val3": "test3"
}