Pyspark RDD 收集前 163 行
Posted
技术标签:
【中文标题】Pyspark RDD 收集前 163 行【英文标题】:Pyspark RDD collect first 163 Rows 【发布时间】:2015-12-10 23:46:59 【问题描述】:有没有办法在不转换为 df 的情况下获取 rdd 的前 163 行?
我尝试过类似newrdd = rdd.take(163)
的方法,但它会返回一个列表,而rdd.collect()
会返回整个 rdd。
有没有办法做到这一点?或者如果没有,有没有办法将列表转换为 rdd?
【问题讨论】:
【参考方案1】:效率不是很高,但你可以zipWithIndex
和filter
:
rdd.zipWithIndex().filter(lambda vi: vi[1] < 163).keys()
在实践中,简单的take
和parallelize
更有意义:
sc.parallelize(rdd.take(163))
【讨论】:
如果我需要将行从 > 163 和小于 200 我给 vi[1] > 163 && vi[1] 它使用以下代码行:data.zipWithIndex().filter(lambda vi: (vi[1] > 163) & (vi[1]以上是关于Pyspark RDD 收集前 163 行的主要内容,如果未能解决你的问题,请参考以下文章