我找不到一种方法只在rdd上占一部分。take看起来很有希望,但它返回的是list而不是rdd。当然,我可以将其转换为rdd,但这看起来既浪费又丑陋。
my_rdd = sc.textFile("my_file.csv")
part_of_my_rdd = sc.parallelize(my_rdd.take(10000))我有更好的方法吗?
发布于 2016-03-03 22:26:29
是的,确实有更好的办法。您可以使用来自示例的RDD方法,它声明:
样品(withReplacement,分数,seed=None) 返回此RDD的抽样子集。
quantity = 10000
my_rdd = sc.textFile("my_file.csv")
part_of_my_rdd = my_rdd.sample(False, quantity / my_rdd.count())发布于 2019-07-18 07:26:33
@Akavall,这是个好主意。但格式有一些变化。
my_rdd = sc.textFile("my_file.csv")
part_of_my_rdd = sc.parallelize(my_rdd.take(10000)).map(x=>x.slice(1, x.length-1))去掉括号是可以的!
https://stackoverflow.com/questions/35784263
复制相似问题