Я создаю задание spark, и мне интересно, есть ли какие-либо преимущества в производительности при чтении таблицы с помощью spark.sqlContext().read("table") против spark.sql("select * from table") Или логический план spark в конечном итоге одинаков?
spark.sqlContext().read("table")
spark.sql("select * from table")
Если вы используете spark.read.jdbc, вы можете указать ключ раздела для параллельного чтения таблицы, а затем иметь несколько разделов для работы с spark.Будет ли это быстрее, зависит от rdbms и физического дизайна таблицы.Это значительно уменьшит объем памяти, необходимый одному исполнителю.
https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html