嗨,我是 spark sql 的新手。我有一个这样的数据框。
---+----------+----+----+----+------------------------+
|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|
我想在 spark sql 中为每个列表器选择前 10 个时间戳值。
我尝试了以下查询。它会引发错误。
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.
我想为每个需要获取前 10 个时间戳值的侦听器选择。任何帮助将不胜感激。
原文由 Teju Priya 发布,翻译遵循 CC BY-SA 4.0 许可协议
这不行吗?
编辑:
哦,我明白了。你想要
row_number()
: