- Да, вы можете установить spark локально и использовать JDBC для подключения к вашим базам данных. Вот функция, которая поможет вам подключиться к my-sql, которую вы можете обобщить для любого источника JDBC, изменив строку подключения JDBC:
def connect_to_sql(
spark, jdbc_hostname, jdbc_port, database, data_table, username, password
):
jdbc_url = "jdbc:mysql://{0}:{1}/{2}".format(jdbc_hostname, jdbc_port, database)
connection_details = {
"user": username,
"password": password,
"driver": "com.mysql.cj.jdbc.Driver",
}
df = spark.read.jdbc(url=jdbc_url, table=data_table, properties=connection_details)
return df
Spark лучше справляется с большими данными, чем Pandas, даже на локальных машинах, но это приводит к снижению производительности из-за параллелизма и распределенных вычислений. Это определенно будет служить вашим целям в кластере, но локальный режим должен использоваться только для разработки.
Будьте уверены, Spark (установлен локально) будет push-запрос, ограничение и преобразование ограничения и даже лучше, если все сделано правильно. Операции поиска, сортировки и фильтрации будут дорогостоящими, поскольку DF - это неиндексированная распределенная структура данных.
Не зная разницы в скорости между Presto и Spark, не пробовал сравнивать.
Надеюсь, это поможет.
Примечание : Повышение производительности не гарантируется на локальном компьютере даже при оптимальной параллельной рабочей нагрузке. Не предоставляет возможности для распространения.