2015-11-25 20 views
7

che sto cercando di realizzare il seguente caso d'uso su Apache Zeppelin: Quando scrivo una query SQL, ad esempioApache - Zeppelin utilizzo di variabili tra i paragrafi

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

ho una casella combinata visualizzata con questi valori (1,2,3,4) come opzioni. Quello che voglio fare è compilare questo elenco con tutti i valori distinti disponibili per questa colonna (o come ogni altro insieme di valori che potrei voler prendere da un altro paragrafo sotto forma di variabile). Quindi attualmente sono bloccato su come utilizzare alcune variabili definite in un paragrafo all'interno di un'istruzione SQL in un altro paragrafo?

Tuffarsi nel codice, ho visto che all'interno della Zeppelin-interprete, un file chiamato controlli Input.java per un modello di $ {someColumn = someValues}, riempie le opzioni di combo-box e quindi crea una query semplice, e quindi ho abbandonato l'idea di popolarlo eseguendo una query nello stesso paragrafo.

risposta

0

È possibile utilizzare ZeppelinContext per eseguire questa operazione, in quanto consente di utilizzare put() e get() per impostare e recuperare gli oggetti tra i paragrafi.

Citando l'esempio dalla pagina collegata, notare che il z oggetto è l'istanza predefinita di ZeppelinContext:

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

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