如何从Spark DataFrame中提取10000个元素的随机样本?
我需要类似Pandas中的示例函数
您可以使用解决此问题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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句