Ist die Abfrage gegen einen auf CSV basierenden Spark-DataFrame schneller als gegen einen auf Parquet basierenden?

Ich muss eine CSV-Datei von HDFS mit Spark in @ ladeDataFrame. Ich habe mich gefragt, ob es eine "Leistungsverbesserung" (Abfragegeschwindigkeit) von einem mit einer CSV-Datei gesicherten DataFrame gegenüber einem mit einer Parkettdatei gesicherten gib

ormalerweise lade ich eine CSV-Datei wie die folgende in einen Datenrahme

val df1 = sqlContext.read
 .format("com.databricks.spark.csv")
 .option("header", "true")
 .option("inferSchema", "true")
 .load("hdfs://box/path/to/file.csv")

Das Laden einer Parkettdatei (vorausgesetzt, ich habe die CSV-Datei analysiert, ein Schema erstellt und in HDFS gespeichert) sieht folgendermaßen aus.

val df2 = sqlContext.read.parquet("hdfs://box/path/to/file.parquet")

Nun frage ich mich, ob Vorgänge wie die folgenden Abfragezeiten betroffen und / oder anders wären.

df1.where ("col1 = 'some1'"). count () df1.where ("col1 = 'some1' und col2 = 'some2'"). count ()

Ich frage mich, ob jemand weiß, ob es Prädikat-Pushdown für Parkett gibt?

Für mich scheint Parkett wie ein invertierter Index zu sein, und es wäre zu erwarten, dass einfache Filter für die Zählung für einen auf Parkett basierenden Datenrahmen schneller sind als für einen auf CSV basierenden. Was den CSV-gesicherten Datenrahmen betrifft, stelle ich mir vor, dass jedes Mal, wenn nach Elementen gefiltert wird, ein vollständiger Datensatz-Scan durchgeführt werden muss.

Eine Erläuterung der Abfrageleistung von CSV- und Parkett-Datenrahmen ist erwünscht. Außerdem ist jedes Dateiformat willkommen, das die Anzahl der Abfragen in Datenrahmen beschleunigt.