Изменение вероятности выделения в выборке PySpark без замены - PullRequest
0 голосов
/ 12 февраля 2020

Я понимаю, что для эффективной выборки Spark использует выборку Бернулли, где она выделяет каждую строку в выборке с одинаковой вероятностью включения.

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

Спасибо за ваш ответ. Ниже приведен код Python, который я использую для выборки количества строк nsize с использованием метода sample.

sampleout_lsoa ['nsize'] = sampleout_lsoa [' nsize ']. Astype (int)

sample_lsoa = (sampleout_lsoa.groupby(stratum_lsoa, group_keys = False).apply(lambda x: x.sample(x['nsize'].iloc[0])))

stratum_lsoa - это список страт, по которым я выполняю выборку. nsize - это столбец с целочисленным значением, представляющий количество строк на слои, которые мне требуются для выборки.

В настоящий момент я считаю, что Python выделяет каждой строке четный шанс быть выбранным; поэтому, если nsize представит 10% выборку строк в DataFrame sampleout_lsoa, каждая строка будет иметь 10% вероятности включения.

Мне бы хотелось, чтобы способ изменить эту вероятность выбора на значения между 0,0 и 1,0; разные десятичные числа для каждой строки, так что определяет ее шанс быть выбранным. Вы знаете, возможно ли это в Python, R или Spark?

...