【问题标题】:pyspark program for nested loop用于嵌套循环的 pyspark 程序
【发布时间】:2015-07-20 10:10:36
【问题描述】:

我是 PySpark 的新手,我想了解如何在 PySpark 中编写多个嵌套的 for 循环,下面是粗略的高级示例。 任何帮助将不胜感激。

for ( i=0;i<10;i++)
   for ( j=0;j<10;j++)
       for ( k=0;k<10;k++)
          { 
           print "i"."j"."k"
}

【问题讨论】:

    标签: python for-loop apache-spark pyspark rdd


    【解决方案1】:

    在非分布式设置中,for 循环使用 foreachcombinator 重写,但由于 Spark 的性质,mapflatMap 是更好的选择:

    from __future__ import print_function
    a_loop = lambda x: ((x, y) for y in xrange(10))
    print_me = lambda ((x, y), z): print("{0}.{1}.{2}".format(x, y, z)))
    
    (sc.
        parallelize(xrange(10)).
        flatMap(a_loop).
        flatMap(a_loop).
        foreach(print_me)
    

    使用itertools.product:

    from itertools import product
    sc.parallelize(product(xrange(10), repeat=3)).foreach(print)
    

    【讨论】:

    • @Ali print in lambda 工作正常。元组参数解包没有,但 OP 明确使用 Python 2。
    猜你喜欢
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多