Pyspark:使用toPandas()的性能

时间:2020-04-12 21:20:59

标签: python pandas pyspark

我有一个迭代优化过程,其中包括在相对较大的数据帧(700000行)上的一些pyspark查询(具有参数)。我的问题涉及toPandas()的使用以及我的结构是否可以改进。该过程如下:

给出:查询的初始参数集

初始步骤:加载数据并转换为pyspark数据框(df_spark = spark.createDataFrame(data))

运行x次迭代:

Step 1. execute some queries on df_spark (using current set of parameters)
        --> result is a new dataframe ("new_frame_spark")

Step 2. transform "new_frame_spark" to pandas using toPandas()

Step 3. perform a few calculations on new_frame
        --> result is a single number ("result_number")

Step 4. Based on "result_number", change current set of parameters and start over with Step 1.

总体而言,该过程运行良好,但是第2步是一个大问题,因为此转换需要大量时间。我也尝试过在“ new_frame_spark”上执行第3步,然后使用collect()将结果数字“ result_number”转换为numpy。不幸的是,这花费了很长时间。

有什么办法可以加快程序速度吗?

非常感谢您!

0 个答案:

没有答案