【发布时间】:2018-02-11 00:36:01
【问题描述】:
我是 Spark 的初学者,并试图了解 Spark 数据帧的机制。 当从 csv 和 parquet 加载数据时,我正在比较 spark sql 数据帧上的 sql 查询的性能。我的理解是,一旦将数据加载到 spark 数据框中,数据的来源(csv 或 parquet)就无关紧要了。但是,我看到两者之间存在显着的性能差异。我正在使用以下命令加载数据并针对它编写查询。
dataframe_csv = sqlcontext.read.format("csv").load()
dataframe_parquet = sqlcontext.read.parquet()
请解释造成差异的原因。
【问题讨论】:
-
您能否说明您在哪里看到了性能差异?是在您从 csv/parquet 读取数据后实际运行 spark sql 查询的时候吗? Spark 对数据帧有惰性求值。如果您要计算在 sql 查询数据帧上执行操作(例如,.show()、.count() 等)需要多长时间,它很可能包括从 csv/parquet 读取的时间。因此,镶木地板应该更快。
标签: pyspark spark-dataframe pyspark-sql