У меня есть миллиарды данных в формате hdf, теперь я хочу загрузить данные с помощью Spark, а затем присвоить каждой записи тег сортированного номера, как в облаке я пишу код, чтобы добиться максимальной эффективности?
Давайте рассмотрим, например, этот набор данных:
100.0
120.0
400.0
500.0
20.0
12.0
33.0
...
8.0
9.0
...
Результат, который я просто хочу получить:
0.0 1
1.0 2
5.0 3
8.0 4
9.0 5
...
27898880 2500000
27898893 2500001
....
Я пробовал оконную функцию row_number() в SparkSQL, как показано ниже, но он не может использовать многоядерные, он просто работает в одноядерном, поэтому он такой медленный.
select
score,
row_number() over(order by score) as sort
from
my_score_data