Clickhouse не возвращает заголовки столбцов - PullRequest
1 голос
/ 21 июня 2019

Я пытаюсь получить некоторые реляционные данные из clickhouse и поиграть с ними в пандах. Это работает, но pd.read_sql_query возвращает фрейм данных, где имена столбцов являются значениями первой строки. Вместо этого я ожидал увидеть имена столбцов, как они названы в реляционной таблице.

Я попробовал то же самое с Postgress, и он работает правильно.

cheng = create_engine('clickhouse://mylogin:mypassG@domain.my:PORT/schema')
qry2 = '''select * from myschema.mytable order by a_date desc limit 10'''

dt = pd.read_sql_query(qry, cheng)
dt

enter image description here

Заголовок возвращаемых столбцов данных состоит из значений первой строки, возвращаемых из БД. Вместо этого я ожидал увидеть имена столбцов.

Ответы [ 2 ]

0 голосов
/ 22 июня 2019

Вы можете получить метки столбцов в pandas dataframes, используя clickhouse-driver.Пример показан ниже.

from clickhouse_driver import Client
import pandas
client = Client('localhost')
result, columns = client.execute('SELECT * FROM iris', 
                                 {'species': "Iris-setosa"},
                                 with_column_types=True)
df = pandas.DataFrame(result, columns=[tuple[0] for tuple in columns])
df.tail()

Вы увидите метки в выводе df.tail ().

0 голосов
/ 22 июня 2019

Пожалуйста, проверьте этот пакет Python: https://pypi.org/project/pandahouse/

connection = {'host': 'http://clickhouse-host:8123',
              'database': 'test'
affected_rows = to_clickhouse(df, table='name', connection=connection)

df = read_clickhouse('SELECT * FROM {db}.table', index_col='id',
                     connection=connection)
...