Pyspark: как отфильтровать 10000 случайных элементов из фрейма искры - PullRequest
2 голосов
/ 11 октября 2019

Как я могу извлечь случайную выборку из 10000 элементов из моего искрового DataFrame?

Мне нужно что-то вроде функции выборки в Pandas

Ответы [ 2 ]

2 голосов
/ 11 октября 2019

Вы можете решить эту проблему, используя randomSplit. Результат будет приблизительным. Вы можете не получить ровно 10000 строк, но это будет достаточно близко

import pandas as pd
totalrows = 40000
df = pd.DataFrame([["name_"+str(i) for i in range(totalrows)], list(range(totalrows))]).transpose()
sdf = spark.createDataFrame(df)

def random_sampler(X, totalrows, nrows=100, seed = 42):
    split_ratios = [nrows/totalrows, 1-(nrows/totalrows)]
    random_sampled_data = X.randomSplit([split_ratio for split_ratio in split_ratios], seed=seed)
    return random_sampled_data[0]


random_sampler(sdf, totalrows, nrows=10000, seed = 42).count()
# 9952
0 голосов
/ 11 октября 2019

вы можете достичь этого, используя randomSplit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...