如何尽可能高效地将存储在RDD列中的多个json表“减少”到单个RDD表中

时间:2016-06-02 06:24:41

标签: python concurrency pyspark spark-dataframe

使用以下代码在数据框中使用union附加行的并发访问是否可以正常工作?目前显示类型错误

from pyspark.sql.types import *
schema = StructType([
    StructField("owreg", StringType(), True),StructField("we", StringType(), True)
        ,StructField("aa", StringType(), True)
        ,StructField("cc", StringType(), True)
        ,StructField("ss", StringType(), True)
        ,StructField("ss", StringType(), True)
        ,StructField("sss", StringType(), True)
])

f = sqlContext.createDataFrame(sc.emptyRDD(), schema)
def dump(l,jsid):
    if not l.startswith("<!E!>"):
         f=f.unionAll(sqlContext.read.json(l))
savedlabels.limit(10).foreach(lambda a: dump(a.labels,a.job_seq_id))

假设sqlContext.read.json(l)将读取json并输出具有相同模式的RDD

模式是我想尽可能有效地将存储在RDD列中的多个json表“减少”到RDD表。

def dump(l,jsid):
    if not l.startswith("<!E!>"):
        f=f.unionAll(sc.parallelize(json.loads(l)).toDF())

上述代码也无效,因为工作线程正在调用sc.parallelize。那么如何解决这个问题?

0 个答案:

没有答案