Я хочу создать искровой фрейм данных, используя Presto.В настоящее время я могу создать фрейм данных pandas из Presto, используя следующий код:
def get_pandas_dataframe(self, hql, parameters=None):
if not self.airflow_conn_reqd:
import pandas
cursor = self.presto_client.cursor()
try:
cursor.execute(self._strip_sql(hql), parameters)
data = cursor.fetchall()
except DatabaseError as e:
raise PrestoException(self._get_pretty_exception_message(e))
column_descriptions = cursor.description
if data:
df = pandas.DataFrame(data)
df.columns = [c[0] for c in column_descriptions]
else:
df = pandas.DataFrame()
else:
df = self.get_pandas_df(hql)
return (
df.replace('', np.nan)
)
Я думал о создании фрейма данных spark с использованием чего-то подобного.Но для этого мне нужно быть уверенным, что я могу получить все данные из Presto в своем коде Python.Я знаю, что могу сделать это напрямую, используя Spark, но не уверен, что с Presto-Python.
Я реализовал spill-on-disk в Presto и убедился, что вставка работает нормально.,Но поскольку создание фрейма данных было бы задачей в памяти , мне неясно, как мне создать фрейм искровых данных с использованием Presto.
Я размышлял над тем, как создатьКак обычно, искра датафрейма и data
.data
взято из cursor.fetchall()
, но я не знаю, как Presto будет работать в огромных масштабах.
Другими словами, как мне создать искровой фрейм данных непосредственно из Presto?