impossible de sélectionner les 10 enregistrements dans sparksql
Salut, je suis nouveau sur le spark sql. J'ai un bloc de données de ce genre.
---+----------+----+----+----+------------------------+
|tag id|timestamp|listner| orgid |org2id|RSSI
+---+----------+----+----+----+------------------------+
| 4|1496745912| 362| 4| 3| 0.60|
| 4|1496745924|1901| 4| 3| 0.60|
| 4|1496746030|1901| 4| 3| 0.60|
| 4|1496746110| 718| 4| 3| 0.30|
| 2|1496746128| 718| 4| 3| 0.60|
| 2|1496746188|1901| 4| 3| 0.10|
Je veux choisir pour chaque listner top 10 des valeurs d'horodatage spark sql.
J'ai essayé la requête suivante.Il jette les erreurs.
val avg = sqlContext.sql("select top 10 * from avg_table") // throws error.
val avg = sqlContext.sql("select rssi,timestamp,tagid from avg_table order by desc limit 10") // it prints only 10 records.
Je veux choisir pour chaque listner j'ai besoin de prendre le top 10 des valeurs d'horodatage. Toute aide sera appréciée.
Vous devez vous connecter pour publier un commentaire.
Ne fait pas ce travail?
EDIT:
Oh, je l'obtiens. Vous souhaitez
row_number()
:Utiliser "limite" dans votre requête. (limite de 10 dans votre cas)
Ou vous pouvez sélectionner à partir de votre table et de sauvegarder le résultat de DataFrame ou le jeu de données
(ou à CA, mais alors vous devez faire appel rdd.toDS() ou DF () (méthode)
Ensuite, vous pouvez simplement appeler show(10) de la méthode.
Ici, nous pouvons utilisé dense_rank aussi
Différence Entre dense_rank() et row_number() est dense_rank() fournir le même rang/nombre de correspondance colonne[sur le partitionnement est fait] valeurs de plusieurs ligne où que row_number() fournir à l'unique numéro de rang/grade correspondant à des valeurs de colonne dans plusieurs lignes
Grâce