Я предпочитаю работать с хэшами, если хочу убедиться, что получаю один и тот же набор данных снова и снова. Это тоже довольно случайно. С помощью этого метода вы можете выбрать X% ваших уникальных идентификаторов, поэтому, если вы хотите иметь ~ 100 тыс. Идентификаторов, вам нужно выполнить некоторые математические операции.
import pyspark.sql.functions as F
df = df.wihtColumn("hash", F.hash(F.col("ID")) % 1000) # number between -999 and 999
df = df.filter("hash = 0")
Вам также следует проверить распределение, я думаю, вам нужно взять абсолютное значение хеша, потому что оно может быть и отрицательным.
В качестве альтернативы:
df = df.wihtColumn("hash", F.abs(F.hash(F.col("ID")) % 1000)) # number between 0 and 999
С этой логикой вы получите 0,1% ваших идентификаторов более или менее случайно выбранных.