GOOGLE ADS

пятница, 29 апреля 2022 г.

Использование monotonically_increasing_id() для присвоения номера строки кадру данных pyspark

Я использую monotonically_increasing_id(), чтобы присвоить номер строки кадру данных pyspark, используя приведенный ниже синтаксис:

df1 = df1.withColumn("idx", monotonically_increasing_id())

Сейчас в df1 26 572 528 записей. Поэтому я ожидал значения idx от 0 до 26 572 527.

Но когда я выбираю max(idx), его значение странно огромно: 335 008 054 165.

Что происходит с этой функцией? надежно ли использовать эту функцию для слияния с другим набором данных, имеющим такое же количество записей?

У меня есть около 300 кадров данных, которые я хочу объединить в один кадр данных. Таким образом, один кадр данных содержит идентификаторы, а другие содержат разные записи, соответствующие им по строкам.


Решение проблемы

используя функции API, вы можете сделать следующее:

from pyspark.sql.window import Window as W
from pyspark.sql import functions as F
df1 = df1.withColumn("idx", F.monotonically_increasing_id())
windowSpec = W.orderBy("idx")
df1 = df1.withColumn("idx", F.row_number().over(windowSpec)).show()

надеюсь ответ будет полезен

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...