计数和收集操作在空的Spark数据帧上花费大量时间

时间:2019-07-02 12:51:06

标签: dataframe pyspark

我正在使用spark.createDataFrame([],schema)创建一个空的spark数据框,然后从列表中添加行,但是访问该数据框(count-collect)与该数据框上的平时相比花费了太多时间

从csv文件创建的数据帧上的1000行上的

function dataframe.count()占用300毫秒,而从架构创建的空数据帧上则需要4秒钟。 这里的差异来自何处?

schema = StructType([StructField('Average_Power',FloatType(),True),
StructField('Average_Temperature',FloatType(),True),                     
StructField('ClientId',StringType(),True),])

df = df_event_spark = spark.createDataFrame([], schema) 
df.count()

有什么方法可以创建更优化的空Spark数据框?

1 个答案:

答案 0 :(得分:0)

不,这是在pyspark中推荐的方法。

启动Spark应用程序或从笔记本计算机运行内容时有一定的开销。 100行很小,但是运行Spark App等的开销相对较大。这么小的体积。