Apache spark 参与rdd并保持rdd

Apache spark 参与rdd并保持rdd,apache-spark,pyspark,Apache Spark,Pyspark,我找不到一种方法来参与rddtake似乎很有希望,但它返回一个列表,而不是rdd。我当然可以将其转换为rdd,但这似乎既浪费又丑陋 my_rdd=sc.textFile(“my_file.csv”) _my_rdd的部分=sc.parallelize(my_rdd.take(10000)) 有更好的方法吗?是的,确实有更好的方法。您可以使用RDDs中的方法,它说明: 样本(替换、分数、种子=无) 返回此RDD的采样子集 数量=10000 my_rdd=sc.textFile(“my_file.

我找不到一种方法来参与
rdd
take
似乎很有希望,但它返回一个
列表,而不是
rdd
。我当然可以将其转换为
rdd
,但这似乎既浪费又丑陋

my_rdd=sc.textFile(“my_file.csv”)
_my_rdd的部分=sc.parallelize(my_rdd.take(10000))

有更好的方法吗?

是的,确实有更好的方法。您可以使用
RDD
s中的方法,它说明:

样本(替换、分数、种子=无)

返回此RDD的采样子集

数量=10000
my_rdd=sc.textFile(“my_file.csv”)
_my_rdd的部分=my_rdd.sample(False,quantity/my_rdd.count())

@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))

拆下支架即可

谢谢,一定有东西!这是一种工作,但不能保证获得10k条目,而且你仍然可以阅读整个文件。也许作者不在乎。您也可以使用mapPartitionsWithIndex获得单个分区