Я хочу запустить sql для своих данных паркета в spark, используя следующий код,
val parquetDF = spark.read.parquet(path)
parquetDF.createOrReplaceTempView("table_name")
val df = spark.sql("select column_1, column_4, column 10 from table_name");
println(df.count())
Мой вопрос: Этот код считывает только необходимые столбцы с диска?
Теоретически ответ должен быть Да. Но мне нужно мнение эксперта, потому что в случае запросов Jdbc (Mysql),
Этап чтения (spark.read) занимает больше времени по сравнению с действиями (может быть связан с подключением, но не уверен). Код Jdbc следует,
spark.read.format("jdbc").jdbc(jdbcUrl, query, props).createOrReplaceTempView(table_name)
spark.sql("select column_1, column_4, column 10 from table_name");
df.show()
println(df.count())
Если кто-то может объяснить структуру потока в обоих случаях, это будет очень полезно.
Spark версия 2.3.0
Версия Scala 2.11.11