#python #sql #pandas #dataframe
Вопрос:
Я использую python для запроса базы данных Hive, чтобы вернуть create table
инструкцию.
Мой приведенный ниже код возвращает правильную информацию, однако он разделен на несколько строк во фрейме данных, а не на одну строку, являющуюся целым оператором.
Это становится проблемой, когда я запускаю его в цикле для экспорта всех сценариев создания таблиц.
Есть ли способ отформатировать данные ответа таким образом, чтобы они хранились в одной записи/строке? Я использую read_sql
функцию pandas и пытался передавать разные параметры, но безуспешно.
Мой код таков:
import pyodbc import pandas as pd pyodbc.autocommit = True con = pyodbc.connect("DSN=my_hive_connection", autocommit=True) table = "db.student_fact" query = 'SHOW CREATE TABLE {0}'.format(table) df = pd.read_sql(query, con) print(df)
Результат, который я получаю от этого, таков:
createtab_stmt 0 CREATE EXTERNAL TABLE `db.student_fact... 1 `student_name` string, 2 `student_id` string, 3 `metric` double, 4 `class_dim` string) 5 ROW FORMAT SERDE ... 23 'totalSize'='1458773')
В то время как в идеале у меня было бы что-то вроде приведенного ниже, с каждой записью одного утверждения:
createtab_stmt 0 CREATE EXTERNAL TABLE `db.student_fact... `student_name` string, `student_id` string, `metric` double, `class_dim` string) ROW FORMAT SERDE 'totalSize'='1458773')