2015-11-25 13 views
7

Ich versuche, den folgenden Anwendungsfall auf Apache Zeppelin zu erreichen: Wenn ich eine SQL-Abfrage schreiben, zum BeispielApache - Zeppelin mit Variablen in den Absätzen

%sql SELECT * FROM table1 WHERE column1 = ${column1=1,1|2|3|4} 

ich ein Kombinationsfeld mit diesen Werten angezeigt bekommen (1,2,3,4) als Optionen. Was ich tun möchte, ist diese Liste füllen mit allen unterschiedlichen Werten für diese Spalte (oder in der Tat eine andere Gruppe von Werten, die ich von einem anderen Absatz in Form einer variablen nehmen mag). Also zur Zeit ist mir fest, wie einige Variablen in einem Absatz innerhalb einer SQL-Anweisung in einem anderen Abschnitt definiert zu benutzen?

Eintauchen in den Code, sah ich, dass innerhalb des Zeppelin-Interpreter, eine Datei namens Input.java nach einem Muster $ {someColumn = someValues}, füllt die Kombinationsfeld-Optionen und erstellt dann eine einfache Abfrage, und daher habe ich die Idee, bevölkern sie fallen gelassen durch eine Abfrage im selben Absatz läuft.

Antwort

0

können Sie ZeppelinContext verwenden, um dies zu erreichen, wie es Ihnen genutzt() und get() zu setzen und Abrufen von Objekten zwischen den Absätzen ermöglicht.

das Beispiel aus der verknüpften Seite Zitiert beachten, dass das z Objekt die Standardinstanz von ZeppelinContext ist:

// Put object from scala 
%spark 
val myObject = ... 
z.put("objName", myObject) 

# Get object from python 
%spark.pyspark 
myObject = z.get("objName")