PySpark实战:randomSplit

来自CloudWiki
跳转至: 导航搜索

介绍

randomSplit操作是一个变换算子,

调用形式为rdd.randomSplit(weights,seed=None)

它可以按照权重weights对RDD进行随机分割,并返回多个RDD构成的列表。

作用: 这种随机分割在一些数据挖掘或者机器学习算法中非常有用,用于把数据集合随机切分。

代码


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(100), 1)
#按照2:3比例进行RDD切分
rdd1, rdd2 = rdd.randomSplit([2, 3], 10)
#40
print(len(rdd1.collect()))
#60
print(len(rdd2.collect()))
##############################################
sc.stop()

输出

40

60