Pyspark:如何从 Spark 数据帧中过滤 10000 个随机元素



如何从火花数据帧中提取 10000 个元素的随机样本?

我需要类似熊猫示例函数的东西

您可以使用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

你可以通过使用randomSplit来实现它

最新更新