преобразовать группу в ключ уменьшения - PullRequest
0 голосов
/ 10 февраля 2019

загружая данные из файла hdfs в фрейм данных, у меня есть массивный фрейм данных pyspark.Я должен выступить в группе, однако у меня возникают серьезные проблемы с производительностью на клиенте пряжи.Мне нужно оптимизировать код, поэтому я пытаюсь обработать группировку по «уменьшить по ключу», мне нужно преобразовать группу в сокращение по ключу, чтобы я мог создать ту же схему, что и выше. DATE тип данных datetime

def processToRDD(line):
    f = line.split(",")
    return f
myRDD = sc.textFile("hdfs:///myData/zaid/new/all.txt").map(processToRDD)

def processToDF(rdd_line):
    return(Row(DATE = datetime.strptime(rdd_line[0],"%Y-%m-%d").date(),
    IMSI= rdd_line[1],
    SITE = rdd_line[2],
    LINKDOWN = int(rdd_line[3]),
    LINKUP = int(rdd_line[4]),
    COUNT = int(rdd_line[5]),
    CONNECTION = int(rdd_line[6])))

myRows = myRDD.map(processToDF)
myDF = myRows.toDF()
myDF.show()  # pretty!
myDF.groupBy('IMSI','SITE').agg(F.min('DATE').alias('min_of_date'),
                F.max('DATE').alias('max_of_date'),
                F.count('DATE').alias('count_of_date'),
                F.sum('LINKDOWN').alias('sum_of_linkdown'),
                F.sum('LINKUP').alias('sum_of_linkup'),
                F.sum('COUNT').alias('sum_of_count'),
                F.sum('CONNECTION').alias('sum_of_connection')
                ).show()
...