如何使用pyodbc将panda Dataframe 写入HDFS集群?

kiayqfof  于 2022-12-09  发布在  HDFS
关注(0)|答案(1)|浏览(170)

我正在使用DSN将本地python连接到HDFS集群:

import pyodbc    
    with pyodbc.connect("DSN=CDH_HIVE_PROD", autocommit=True) as conn:
        df = pd.read_sql("""Select * from table1""", conn)
df

我如何将这个表写回集群作为'table1tmp'?我是否需要一个create语句来首先创建这个表?然后我如何从一个panda Dataframe 中插入数据?
我假设这是一件经常做的事情,它应该是相当容易的(拉数据,做一些事情,保存数据回来),但我无法找到任何使用pyodbc或DSN的例子,这似乎是我唯一的连接方式。

qzlgjiam

qzlgjiam1#

我们也遇到过类似的问题。多亏了关于SQLAlchemy的评论,我们找到了一个可行的解决方案:

def my_create_engine(mydsn, mydatabase, **kwargs):
connection_string = 'mssql+pyodbc://@%s' % mydsn
cargs = {'database': mydatabase}
cargs.update(**kwargs)
e = sqlalchemy.create_engine(connection_string, connect_args=cargs)
return e 
engine = my_create_engine('CDH_HIVE_PROD', 'CDH_HIVE_PROD') 
con = pyodbc.connect("DSN=CDH_HIVE_PROD")
pd.io.sql.to_sql(frame=df_output, name='test', schema='dbo', con=con, if_exists='replace', index=False )

相关问题