python - 将大型数据帧加载到 Vertica

标签 python pandas vertica

我有一个相当大的数据帧(500k+行),我正在尝试将其加载到Vertica。我可以使用以下代码,但速度非常慢。

#convert df to list format
lists = output_final.values.tolist()

#make insert string
insert_qry = " INSERT INTO SCHEMA.TABLE(DATE,ID, SCORE) VALUES (%s,%s,%s) "

# load into database
for i in range(len(lists)):
    cur.execute(insert_qry, lists[i])
conn_info.commit()

我看过一些帖子讨论使用 COPY 而不是 EXECUTE 来完成如此大的负载,但还没有找到一个好的工作示例。

最佳答案

经过多次尝试和错误...我发现以下内容对我有用。

   # insert statements
    copy_str = "COPY SCHEMA.TABLE(DATE,ID, SCORE)FROM STDIN DELIMITER ','"

    # turn the df into a csv-like object
    stream = io.StringIO()
    contact_output_final.to_csv(stream, sep=",",index=False, header=False)

    # reset the position of the stream variable
    stream.seek(0)

    # load to data
    with conn_info.cursor() as cursor:
        cur.copy(copy_str,stream.getvalue())
    conn_info.commit() 

关于python - 将大型数据帧加载到 Vertica,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54338108/

相关文章:

bash - vsql 错误处理(没有那个文件或目录)

user-defined-functions - 在 UDF 中返回多个值

javascript - 如何用python创建highcharts格式的json结构

python - 从命令行跳过 pytest 中的导入模块

python - Pandas 分组7天

python - Pandas :DataFrame.quantile 轴关键字不起作用

mongodb - 与 MongoDB 或 Cassandra 相比,Greenplum 或 Vertica 等数据库的优势

python - 分形的 3D 动画

python - eclipse 控制台出现意外的中文输出

python - 从 Pandas 数据框中选择特定的索引、列对