Python 如何在Spark中高效地处理每个字段都有键值对的CSV文件?

Python 如何在Spark中高效地处理每个字段都有键值对的CSV文件?,python,apache-spark,pyspark,spark-streaming,Python,Apache Spark,Pyspark,Spark Streaming,我有一个以下格式的CSV文件,我必须在Spark中处理,然后在某些字段上聚合。复制这里的一小部分 vsnId=0,MSTATSTOTSENTOTETS=2683,MSTATSTOTRECVDOTETS=28584,MSTATSTOTSSSDUration=300000 现在只提取数字部分,我在Spark SQL中应用子字符串,如下所示 '''stream_df.createOrReplaceTempView(\"accstats\") totalTrans = spark.

我有一个以下格式的CSV文件,我必须在Spark中处理,然后在某些字段上聚合。复制这里的一小部分

vsnId=0,MSTATSTOTSENTOTETS=2683,MSTATSTOTRECVDOTETS=28584,MSTATSTOTSSSDUration=300000

现在只提取数字部分,我在Spark SQL中应用子字符串,如下所示

'''stream_df.createOrReplaceTempView(\"accstats\")

totalTrans = spark.sql("select substring(vsnId,length(\"vsnId=\")+2) vsnId," \
         "substring(mstatsTotSentOctets,length(\"mstatsTotSentOctets=\")+2) mstatsTotSentOctets," \
        "substring(mstatsTotRecvdOctets,length(\"mstatsTotRecvdOctets=\")+2) mstatsTotRecvdOctets," \
     "substring(mstatsTotSessDuration,length(\"mstatsTotSessDuration=\")+2) mstatsTotSessDuration " \
                        "from accstats")'''
此外,我将在“totalTrans”数据帧上应用聚合。考虑到每小时都会有Gbs的数据,我怀疑这是一种有效的处理方式。我使用的是Spark结构化流媒体。到目前为止,源文件是CSV文件,但最终提要将来自Kafka。请建议