2017-09-18 3 views
-1

Je veux remplir une case à cocher spark avec les valeurs distinctes d'une colonne, car à l'étape suivante ce sera mes options de filtre.Comment convertir DataFrame en Iterable (et cocher la case dans Zeppelin avec les valeurs)?

Mes données ressemble à ceci:

df:

root 
|-- KW: integer (nullable = true) 
|-- grund: long (nullable = true) 
|-- text_rotschaltung: string (nullable = true) 
|-- Anzahl: long (nullable = false) 

ColumnFilter:

root 
|-- grund: long (nullable = true) 

La colonne "grund" est un identifiant pour la raison des échecs. Et dans mon rapport, l'utilisateur doit filtrer interactivement quelles raisons il veut voir.

En fait, j'ai cette partie de code:

... 

    val df = rdd1.toDF() 
    var ColumnFilter = df.orderBy("grund").select("grund").distinct 



println("Hello "+z.checkbox("The reasons:", ColumnFilter).mkString(" and ")) 

Avec ce code, je reçois l'erreur:

error: type mismatch; 
found : org.apache.spark.sql.DataFrame 
required: Iterable[(Object, String)] 
println("Hello "+z.checkbox("The reasons", ColumnFilter).mkString(" and ")) 

Comment puis-je convertir une trame de données à itératifs ou que d'autres options ont I remplir la Case à cocher?

Merci beaucoup. pour récupérer les données

+0

à quoi ressemble la méthode 'z.checkbox'? – philantrovert

+0

En ce moment, je n'ai pas de méthode. Donc je veux le remplir comme dans cet exemple: val options = Seq (("pomme", "Pomme"), ("banane", "Banane"), ("orange", "Orange")) println ("Bonjour" + z.checkbox ("fruits", options) .mkString ("et")) (https://zeppelin.apache.org/docs/latest/manual/dynamicform.html) Avec le différence, que j'utilise la colonne. – DaShI

+0

Ensuite, je pense que vous devriez mettre à jour votre question avec votre base de données d'entrée actuelle, comment vous voulez que votre sortie ressemble et qu'avez-vous essayé jusqu'à maintenant. – philantrovert

Répondre

0

How can I convert a DataFrame to Iterable

Utilisez collect (à l'intérieur de DataFrame).