Como posso melhorar a parte de redução de tecla do meu aplicativo spark?

Eu tenho 64 núcleos de faísca. Tenho mais de 80 milhões de linhas de dados que totalizam 4,2 GB no meu cluster cassandra. Agora preciso de 82 segundos para processar esses dados. Eu quero isso reduzido para 8 segundos. Alguma idéia sobre isso? Isso é possível? Obrigado.

Esta é a parte do meu aplicativo spark que eu quero melhorar:

axes = sqlContext.read.format("org.apache.spark.sql.cassandra")\
    .options(table="axes", keyspace=source, numPartitions="192").load()\
    .repartition(64*3)\
    .reduceByKey(lambda x,y:x+y,52)\
    .map(lambda x:(x.article,[Row(article=x.article,at=x.at,comments=x.comments,likes=x.likes,reads=x.reads,shares=x.shares)]))\
    .map(lambda x:(x[0],sorted(x[1],key=lambda y:y.at,reverse = False))) \
    .filter(lambda x:len(x[1])>=2) \
    .map(lambda x:x[1][-1])

Editar:

Este é o código que estou executando no momento, o postado acima foi um experimento para desculpar a confusão. A pergunta acima está relacionada a este código.

axes = sqlContext.read.format("org.apache.spark.sql.cassandra").options(table="axes", keyspace=source).load().repartition(64*3) \
                    .map(lambda x:(x.article,[Row(article=x.article,at=x.at,comments=x.comments,likes=x.likes,reads=x.reads,shares=x.shares)])).reduceByKey(lambda x,y:x+y)\
                    .map(lambda x:(x[0],sorted(x[1],key=lambda y:y.at,reverse = False))) \
                    .filter(lambda x:len(x[1])>=2) \
                    .map(lambda x:x[1][-1])

obrigado

questionAnswers(1)

yourAnswerToTheQuestion