对于并行循环 - Spark 2

时间:2017-12-13 22:26:44

标签: apache-spark pyspark

在我的简单spark应用程序中,我有一些代码:

def read_group(type):
    try:
        return sqlContext.read.json('adl:///user/sshuser/gts/in/%s/*.json' % type)
    except:
        return False

if __name__ == '__main__':
    # End Python 2.x.x Unicode pain
    reload(sys)
    sys.setdefaultencoding('utf8')

    sc = SparkContext()
    sc.setLogLevel('WARN')
    sqlContext = HiveContext(sc)

    types = [
        'Customer',
        'CustomerVariable',
        'ETLJob',
        'ETLJobDetail'
        'Item',
        'ItemPerson',
        'ItemPersonVariable',
        'ItemVariable',
        'ItemXref',
        'ItemXrefVariable',
        'Part',
        'PartVariable',
        'ProcessHistory',
        'ProcessHistoryVariable',
        'ProductionReport',
        'Quality',
        'QualityVariable',
        'RawMaterial',
        'RawMaterialVariable',
        'ShippingInfo',
        'TAS_Project',
    ]

    for type in types:
        print 'Read %s' % type
        frame = read_group(type)
        if frame:
            frame.show()

for循环中的代码似乎按顺序执行。如何同时运行所有类型?

我试过这个,但它给出了一个错误:

sc.parallelize(types).map(lambda x: sqlContext.read.json('adl:///user/sshuser/gts/in/%s/*.json' % x).show())

0 个答案:

没有答案