PySpark实战:sample操作
来自CloudWiki
介绍
sample操作是一个变换算子,可以实现按数据进行抽样的功能。
调用形式为rdd.sample(withReplacement,fraction,seed=None)
withReplacement:布尔值,表示在采样过程中是否可以对同一个元素进行多次采样
fraction:抽样的比例
seed:随机数生产数的种子
代码
import findspark findspark.init() ############################################## from pyspark.sql import SparkSession spark = SparkSession.builder \ .master("local[1]") \ .appName("RDD Demo") \ .getOrCreate(); sc = spark.sparkContext ############################################# rdd = sc.parallelize(range(10), 1) ret = rdd.sample(False,0.7, 1) #可能输出[9, 11, 13, 39, 49, 55, 61, 65, 90, 91, 93, 94] print(ret.collect()) ret = rdd.sample(True,0.7, 1) #可能输出[16, 19, 23, 30, 41, 50, 70, 73, 75, 80, 84, 96, 99] print(ret.collect()) ############################################## sc.stop()
输出
[0, 2, 3, 5, 6, 8, 9]
[1, 2, 3, 4, 8, 9, 9, 9]