参加rdd并保持rdd

时间:2016-03-03 22:23:43

标签: apache-spark pyspark

我无法找到一种方法来参与rddtake似乎很有希望,但它会返回list而不是rdd。我当然可以将它转换为rdd,但这看起来很浪费和丑陋。

 my_rdd = sc.textFile("my_file.csv")
 part_of_my_rdd = sc.parallelize(my_rdd.take(10000))

我有更好的方法吗?

2 个答案:

答案 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))

去掉括号就可以了!