загружая данные из файла 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()