楼主: 时光永痕
590 0

[数据挖掘新闻] 使用Python和R加载关系数据库表,第一部分 [推广有奖]

  • 0关注
  • 14粉丝

svip3

学术权威

12%

(VIP/贵宾)四级

3%

威望
0
论坛币
26 个
通用积分
49.8595
学术水平
4 点
热心指数
4 点
信用等级
4 点
经验
34070 点
帖子
2731
精华
0
在线时间
317 小时
注册时间
2020-7-21
最后登录
2024-5-13

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
使用Python和R加载关系数据库表,第一部分
我喜欢使用R,Python-Pandas,Julia,Apache Spark甚至关系数据库等计算平台进行分析的数据准备工作。争执的周期提供了机会,可以初步了解并稍后分析/建模的数据。
与数据库相比,我更喜欢在计算中处理的一项关键任务是数据加载。这是因为数据库通常要求在插入记录之前创建表,而计算平台可以同时创建/加载数据结构,从而即时推断属性数据类型(这些数据类型也可以在加载脚本中覆盖)。当数据来自网络上可用的文件时,后者可以节省大量的工作。目前与我相关的此类Web数据示例是人口普查和Medicare Provider Utilization and Payment。这些中的每一个都有许多记录和属性。   
我最近给自己带来的一个挑战是在笔记本上将1580万条记录和286个属性普查数据文件加载到PostgreSQL中。创建286列的表后,使用PostgreSQL数据加载功能很容易,但是如何轻松地制定create table语句呢?  
一种可能性是使用计算平台提供的数据库连接功能。Python-Pandas和R都提供PostgreSQL库,并且都支持将数据帧直接复制到PostgreSQL表中。
当我努力寻找可行的解决方案时,我想到了考虑使用计算复制功能来创建带有很小数据子集的表,然后使用高效的PostgreSQL复制命令将数据文件批量加载到数据库中的想法。事实证明,我能够将这些计算和数据库加载功能结合在一起,从而得出可行的解决方案。
我采用的策略如下:1)使用Python-Pandas和R-data.table将一小部分数据加载到数据帧中以确定数据类型;2)利用该dataframe / data.table在PostgreSQL中创建一个关系数据库表;3)根据元数据和csv文件生成批量加载sql复制命令以及shell脚本;4)使用系统命令的变体执行shell脚本,以使用有效的copy语句加载数据。
首先是Python-Pandas,如下所示。仅作为概念证明,代码中没有异常/错误处理。希望提出的想法引起共鸣。
使用的技术是JupyterLab 0.35.4,Anaconda Python 3.7.3,Pandas 0.24.2,sqlalchemy 1.3.1,psycopg2 2.8.3和d6tstack 0.1.9。

关注 CDA人工智能学院 ,回复“录播”获取更多人工智能精选直播视频!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python 关系数据库 数据库表 关系数据 数据库

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-17 23:55