【问题标题】:Pyspark RDD collect first 163 RowsPyspark RDD 收集前 163 行
【发布时间】:2015-12-10 23:46:59
【问题描述】:

有没有办法在不转换为 df 的情况下获取 rdd 的前 163 行?

我尝试过类似newrdd = rdd.take(163) 的方法,但它会返回一个列表,而rdd.collect() 会返回整个 rdd。

有没有办法做到这一点?或者如果没有,有没有办法将列表转换为 rdd?

【问题讨论】:

    标签: python apache-spark pyspark rdd


    【解决方案1】:

    效率不是很高,但你可以zipWithIndexfilter

    rdd.zipWithIndex().filter(lambda vi: vi[1] < 163).keys()
    

    在实践中,简单的takeparallelize 更有意义:

    sc.parallelize(rdd.take(163))
    

    【讨论】:

    • 如果我需要将行从 > 163 和小于 200 我给 vi[1] > 163 && vi[1]
    • 它使用以下代码行:data.zipWithIndex().filter(lambda vi: (vi[1] > 163) & (vi[1]
    猜你喜欢
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多