2016-12-07 2 views
0

Versuchen, das JavaSparkSQLExample in Spark2 auszuführen. mit spark-core_2.11-2.0.2 und spark-sql_2.11-2.0.2. Es ist ein Fehler aufgetreten: The method createGlobalTempView(String) is undefined for the type Dataset<Row>.Spark2-Java-Dataset-Sql

Eigentlich die latest API docs haben diese Methode nicht definiert. Also the programming Guide hat dies. Jeder hat eine Ahnung davon.

Auch wie wir die Sitzung erstellen - wie Sie können nicht mit: .config("spark.some.config.option", "some-value").

SparkContext: Error initializing SparkContext. 
org.apache.spark.SparkException: A master URL must be set in your configuration 
+0

Which Spark-Version verwenden Sie? 'createGlobalTempView()' ist seit 2.1.0 verfügbar. –

+0

@ Anton Okolnychyi Ich verwende spark-core_2.11-2.0.2 und spark-sql_2.11-2.0.2 mit Blick auf die neuesten [API Docs] [1] [1 ]: http: //spark.apache.org/docs/latest/api/java/index.html –

+0

Korrekt, die API-Dokumentation gilt auch für 2.0.2, da Spark 2.1 nicht offiziell verfügbar ist. Haben Sie das Beispiel in den Spark-Quellen gefunden? Ich finde 'createGlobalTempView()' nicht im Spark SQL-Programmierleitfaden für Release 2.0.2. Wenn Sie sich den Code in Master ansehen, sehen Sie den unveröffentlichten Spark 2.1. –

Antwort

0
  • Ihre Kommentare Laut, suchen Sie auf dem Programmführer einer Spark nächtlichen bauen. Es basiert auf dem Master-Zweig und enthält Code, der noch nicht freigegeben ist. Höchstwahrscheinlich wird es in Spark 2.2.0 landen. Auf der anderen Seite sind Ihre Artefakte und API-Dokumente für die neueste offiziell verfügbare Spark-Version - 2.0.2. createGlobalTempView() erschien nur in 2.1 (die bald kommt, aber auch nicht verfügbar ist). Daher können Sie createGlobalTempView() mit Spark 2.0.2 (die Version Ihrer Artefakte) nicht verwenden. Informationen zu den verfügbaren Funktionen in Spark 2.0.2 finden Sie unter guide.

  • Jede Spark-Anwendung benötigt eine Master URL. Sie können es als Parameter an spark-submit geben oder direkt im Code festgelegt:

    val spark = SparkSession.builder() .appName("App name") .master("local[4]") .getOrCreate()

+0

OK ja ich bin auf 2.0.2 und ich interessiere mich nicht wirklich für das 'createGlobalTempView' Ich habe es einfach falsch verstanden. Übrigens bezieht sich die Anleitung, die Sie zur Verfügung gestellt haben, auch auf den gleichen Beispielcode-Link (also den gleichen neuen Code). Ich habe es aus diesem Teil kommentiert. Versuchte '.master (" local [4] ")' - ** es hat funktioniert **. Ich muss mich endlich mit Cassandra verbinden - wie? In älteren Versionen verwenden wir SparkConf 'conf.setMaster (" local [*] "); conf.set ("spark.cassandra.connection.host", "localhost"); conf.set ("spark.cassandra.connection.port", "9042"); 'Was machen wir jetzt? Vielen Dank, –

+0

Sie können mit ".config" in Spark 2 festlegen. SparkSession.builder() .appName ("App-Name") .master ("local [4]") .config ("spark.cassandra. connection.host "," localhost ") .config (" spark.cassandra.connection.port "," 9042 ") .getOrCreate() – abaghel