Closed suresh7277 closed 1 year ago
This is not a client issue. You should investigate why you're getting a 502 error.
@suresh7277 Feel free to re-open if this is still a issue. If you have been to solve it it'd be helpful for future visitors if you can leave a comment about what the solution was.
Expected behavior
Able to write dataframe
Actual behavior
I am reading a csv file in dataframe n writing it in bulk with chunk_size and method= multi, While doing so trino is throwing 502 bad gateway for some of the csv files. but when i try to write dataframes which failed without chunck_size and method=None its working fine.
Steps To Reproduce
Attaching csv file here 01055.csv
Code
from trino.dbapi import connect from trino.auth import BasicAuthentication import pandas as pd from sqlalchemy import create_engine import datetime
trino_connection = connect( host=host, port=port, verify=False, auth=BasicAuthentication(user_id, pswd), http_scheme="https", catalog="iceberg", schema=schema, )
engine = create_engine(trino_uri), connect_args={'verify': False}) sqlalchemy_connection = engine.connect()
monthly_col_name = ['year', 'month', 'tavg', 'tmin', 'tmax', 'prcp', 'wspd', 'pres', 'tsun'] data = pd.read_csv('01055.csv', parse_dates={'Date': ['year', 'month']}, names=monthly_col_name)
current_time = datetime.datetime.now() current_time = [current_time for x in range(0, input_table.shape[0])] rec_counts = [x for x in range(0, input_table.shape[0])]
data.insert(loc=0, column='pull_datetime.datetime'.upper(), value=current_time) data.insert(loc=1, column='row_unique_id'.upper(), value=rec_counts) data.insert(loc=2, column='station_id', value=['01055' for x in range(0, data.shape[0])])
data.to_sql(name=tablename, con=sqlalchemy_connection, schema=schema, if_exists="append", method='multi', chunksize=500, index=False)
Log output
Error closing cursor Traceback (most recent call last): File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1901, in _execute_context self.dialect.do_execute( File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/trino/sqlalchemy/dialect.py", line 365, in do_execute cursor.execute(statement, parameters) File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/trino/dbapi.py", line 415, in execute self._prepare_statement(operation, statement_name) File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/trino/dbapi.py", line 315, in _prepare_statement query.execute() File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/trino/client.py", line 759, in execute self._result.rows += self.fetch() File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/trino/client.py", line 774, in fetch status = self._request.process(response) File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/trino/client.py", line 568, in process self.raise_response_error(http_response) File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/trino/client.py", line 551, in raise_response_error raise exceptions.Http502Error("error 502: bad gateway") trino.exceptions.Http502Error: error 502: bad gateway
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1996, in _safe_close_cursor cursor.close() File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/trino/dbapi.py", line 529, in close self.cancel() File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/trino/dbapi.py", line 523, in cancel raise trino.exceptions.OperationalError( trino.exceptions.OperationalError: Cancel query failed; no running query Traceback (most recent call last): File "/home/suresh/Workspace/my-project/connectors/connector/app.py", line 362, in
connector.main()
File "/home/suresh/Workspace/my-project/libs/ConnectorHelper.py", line 277, in main
raise err
File "/home/suresh/Workspace/my-project/libs/ConnectorHelper.py", line 266, in main
self.run_batch()
File "/home/suresh/Workspace/my-project/connectors/connector/app.py", line 358, in run_batch
self.run_connector()
File "/home/suresh/Workspace/my-project/connectors/connector/app.py", line 352, in run_connector
raise e
File "/home/suresh/Workspace/my-project/connectors/connector/app.py", line 341, in run_connector
self.get_monthly_weather_data()
File "/home/suresh/Workspace/my-project/connectors/connector/app.py", line 168, in get_monthly_weather_data
raise e
File "/home/suresh/Workspace/my-project/connectors/connector/app.py", line 161, in get_monthly_weather_data
raise e
File "/home/suresh/Workspace/my-project/connectors/connector/app.py", line 148, in get_monthly_weather_data
self.write_to_lakehouse(mode='INSERT', data=weather_monthly_table,
File "/home/suresh/Workspace/my-project/libs/ConnectorHelper.py", line 97, in write_to_lakehouse
self.lakehouse_writer.write_table(table_name=self.dataset_properties['title'],
File "/home/suresh/Workspace/my-project/libs/writer.py", line 384, in write_table
data.to_sql(name=table_name,
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/pandas/core/generic.py", line 2987, in to_sql
return sql.to_sql(
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/pandas/io/sql.py", line 695, in to_sql
return pandas_sql.to_sql(
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/pandas/io/sql.py", line 1740, in to_sql
total_inserted = sql_engine.insert_records(
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/pandas/io/sql.py", line 1327, in insert_records
return table.insert(chunksize=chunksize, method=method)
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/pandas/io/sql.py", line 948, in insert
num_inserted = exec_insert(conn, keys, chunk_iter)
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/pandas/io/sql.py", line 871, in _execute_insert_multi
result = conn.execute(stmt)
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1380, in execute
return meth(self, multiparams, params, _EMPTY_EXECUTION_OPTS)
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 334, in _execute_on_connection
return connection._execute_clauseelement(
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1572, in _execute_clauseelement
ret = self._execute_context(
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1944, in _execute_context
self._handle_dbapi_exception(
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2129, in _handle_dbapiexception
util.raise(exc_info[1], with_traceback=excinfo[2])
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 210, in raise
raise exception
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1901, in _execute_context
self.dialect.do_execute(
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/trino/sqlalchemy/dialect.py", line 365, in do_execute
cursor.execute(statement, parameters)
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/trino/dbapi.py", line 415, in execute
self._prepare_statement(operation, statement_name)
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/trino/dbapi.py", line 315, in _prepare_statement
query.execute()
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/trino/client.py", line 759, in execute
self._result.rows += self.fetch()
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/trino/client.py", line 774, in fetch
status = self._request.process(response)
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/trino/client.py", line 568, in process
self.raise_response_error(http_response)
File "/home/suresh/Workspace/.pythonProjects/my-project/venv/lib/python3.9/site-packages/trino/client.py", line 551, in raise_response_error
raise exceptions.Http502Error("error 502: bad gateway")
trino.exceptions.Http502Error: error 502: bad gateway
Operating System
NAME="Pop!_OS" VERSION="22.04 LTS"
Trino Python client version
0.319.0
Trino Server version
403
Python version
python 3.7
Are you willing to submit PR?