我无法找到一种方法来参与rdd
。 take
似乎很有希望,但它会返回list
而不是rdd
。我当然可以将它转换为rdd
,但这看起来很浪费和丑陋。
my_rdd = sc.textFile("my_file.csv")
part_of_my_rdd = sc.parallelize(my_rdd.take(10000))
我有更好的方法吗?
答案 0 :(得分:1)
是的,确实有更好的方法。您可以使用RDD
中的sample方法,它声明:
样本(withReplacement,fraction,seed = None)
返回此RDD的采样子集。
quantity = 10000
my_rdd = sc.textFile("my_file.csv")
part_of_my_rdd = my_rdd.sample(False, quantity / my_rdd.count())
答案 1 :(得分:0)
@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))
去掉括号就可以了!