Pyspark 对DataFrame做随机打乱操作
需求:从hive下拉数据,要合并多个数据(每组数据类别不同),如果要在构造数据集最终阶段随机打乱,可以使用pyspark的orderBy随机打乱
from pyspark.sql.functions import rand sql = "select * from abc.table1 limit 10;" df1 = spark.sql(sql) sql = "select * from abc.table2 limit 5;" df2 = spark.sql(sql) # 合并两组数据,列名顺序要一致 res = df1.unionAll(df2) res.show() # shuffle data = res.orderBy(rand()) data.show()
但是,这将带来巨额消耗,因为其实一个全局shuffle
时刻记着自己要成为什么样的人!