- df.to_csv(sep=',', index=False)) возникает данная ошибка:
ValueError: Code: 117. DB::Exception:
You have carriage return (\r, 0x0D, ASCII 13) at end of first row.
It's like your input data has DOS/Windows style line separators, that are illegal in TabSeparated format. You must transform your file to Unix format.
But if you really need carriage return at end of string value of last column, you need to escape it as \r.: While executing TabSeparatedRowInputFormat. (INCORRECT_DATA) (version 22.5.1.2079 (official build))
Подскажите, как это можно решить?
посмотреть, какой в итоге получился encoding у сгенерированного файла у функции to_csv есть параметр encoding, что изменить дефолтное поведение
Clickhouse_driver, есть функция insert data frame
to_csv(sep=',' illegal in TabSeparated ничего не кликает?
То есть перед загрузкой надо преобразовать файл в TSV?
ClickHouse умеет и CSV и TSV, как вы в КХ вставляете?
https://clickhouse.com/docs/en/interfaces/formats/#csv
При помощи requests в JupyterLab (DataSpell) class simple_ch_client(): def __init__(self, CH_HOST, CH_USER, CH_PASS, cacert): self.CH_HOST = CH_HOST self.CH_USER = CH_USER self.CH_PASS = CH_PASS self.cacert = cacert def upload(self, table, content, data_format='TabSeparatedWithNames'): content = content.encode('utf-8') query_dict = { 'query': f'INSERT INTO {table} FORMAT {data_format}', 'user': self.CH_USER, 'password':self.CH_PASS } r = requests.post(self.CH_HOST, data=content, params=query_dict, verify=self.cacert) result = r.text if r.status_code == 200: return result else: raise ValueError(r.text) ch = simple_ch_client(HOST, USER, PASS, CASERT) ch.upload(f'{DB_NAME}.{TABLE_NAME}', df.to_csv(sep=',', index=False))
Обсуждают сегодня