我已经构建了一些工具,可以为引用动态Redshift表的用户创建前端列表框。表格中的新项目会自动显示在列表中。
我想在数据库中按字母顺序排列列表,因此动态列表框将按顺序显示数据。
从API下载列表后,我尝试在上传之前在Pandas数据帧中按字母顺序对列表进行排序。这非常有效:
df.sort_values(['name'], inplace=True, ascending=True, kind='heapsort')
但是当我尝试按顺序上传到Redshift时,它会在上传时丢失订单。数据显示在按字母顺序排列的段中。
db_conn = create_engine('<redshift connection>')
obj.to_sql('table_name', db_conn, index = False, if_exists = 'replace')
由于第三方工具(Alteryx)的工作方式,我需要在数据库中按字母顺序排列这些数据。
如何修改to_sql
以按顺序正确上传数据?
答案 0 :(得分:0)
在将数据提取到红移中时,数据会在红移群集中每个节点的切片之间分配。
我的建议是在列上创建一个需要排序的排序键。在该列上有排序键后,可以运行Vacuum命令来对数据进行排序
抱歉!我对Python / Pandas没什么帮助。
如果我做了一个错误的假设,请发表评论,我将重新调整我的答案。