PySpark эквивалент pandas read_sql_query

#python #sql #pandas #pyspark #apache-spark-sql

#python #sql #pandas #pyspark #apache-spark-sql

Вопрос:

Я пытаюсь переключиться с pandas на pyspark, и обычно, когда я проводил свой анализ, я использовал pd.read_sql_query для чтения данных, необходимых для анализа, из базы данных redshift.

Пример:

 query = '''
SELECT id, SUM(value)
FROM table
GROUP BY id
'''

df = pd.read_sql_query(query, engine)
  

Есть ли какая-либо эквивалентная функция в PySpark? Что-то, что получает запрос и движок SQLAlchemy и возвращает результат запроса? Если нет, то каков наилучший способ получить результат SQL-запроса в pyspark?

Я пытался найти что-нибудь в pyspark.SQLContext , но не нашел ничего полезного.

Ответ №1:

используйте spark.sql() API для выполнения вашего запроса.

Example:

 query='select 1'
spark.sql(query).show()
# --- 
#|  1|
# --- 
#|  1|
# --- 
  

Чтобы запустить запрос в любой RDBMS базе данных, затем используйте spark.read.format("jdbc") для установления соединения и выполнения вашего запроса.

 spark.read.format("jdbc").option(...).load()
  

Комментарии:

1. Отлично! Спасибо за помощь