from mysql_tool import *
import copy s = '''
INSERT INTO `qqzone`.`myu` (`id`, `uid`, `age`, `gender`, `marriageStatus`, `education`, `consumptionAbility`, `LBS`, `interest1`, `interest2`, `interest3`, `interest4`, `interest5`, `kw1`, `kw2`, `kw3`, `kw4`, `kw5`, `topic1`, `topic2`, `topic3`, `topic4`, `topic5`, `ct`, `appIdAction`, `appIdInstall`, `os`, `carrier`, `house`) VALUES ('', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
'''.replace('\n', '') indb_fields_s = '{}{}'.format(s.split('VALUES')[], ' VALUES ').replace('`id`,', '')
fields_l = [i.replace(' ', '').replace('`', '') for i in s.split('(')[].split(')')[].split(',')] val_d = {}
for i in fields_l:
val_d[i] = 'NULL'
del val_d['id'] indb_step, indb_step_s = , ''
f = 'userFeature.data'
with open(f, 'r') as fr:
sql_d_l, indb_step_c = [],
for i in fr:
break
sql_d = copy.deepcopy(val_d)
l = i.replace('\n', '').split('|')
for ii in l:
try:
ix_ = ii.index(' ')
k, v = ii[:ix_], ii[ix_ + :]
# if k == 'appIdInstall':
# continue
sql_d[k] = v
except Exception as e:
print(e) sql_d_l.append(sql_d)
indb_step_c +=
if indb_step_c % indb_step == :
s_l = []
for d in sql_d_l:
s_l.append('("{}")'.format('","'.join([d[k] for k in d])))
indb_step_s = '{}{};'.format(indb_fields_s, ','.join(s_l))
try:
mysql_write(indb_step_s)
indb_step_c =
except Exception as e:
logs_l = [e, indb_step_s]
logs_s = '||'.join(logs_l)
print(logs_s)
sql_d, sql_d_l, indb_step_c = val_d, [], if indb_step_c % indb_step != :
s_l = []
for d in sql_d_l:
s_l.append('("{}")'.format('","'.join([d[k] for k in d])))
indb_step_s = '{}{};'.format(indb_fields_s, ','.join(s_l))
try:
mysql_write(indb_step_s)
indb_step_c =
except Exception as e:
logs_l = [e, indb_step_s]
logs_s = '||'.join(logs_l)
print(logs_s) def myindb(f, indb_fields_s, indb_step=):
with open(f, 'r') as fr:
sql_l, indb_step_c, indb_step_s = [], ,''
for i in fr:
if 'aid' in i:
continue
sql_l.append([ii for ii in i.replace('\n', '').split(',')])
indb_step_c +=
if indb_step_c % indb_step == :
s_l = []
for l in sql_l:
s_l.append('("{}")'.format('","'.join(l)))
indb_step_s = '{}{};'.format(indb_fields_s, ','.join(s_l))
try:
mysql_write(indb_step_s)
sql_l, indb_step_c = [],
except Exception as e:
logs_l = [e, indb_step_s]
logs_s = '||'.join(logs_l)
print(indb_step_s)
print(logs_s)
print(e)
if indb_step_c % indb_step != :
s_l = []
for l in sql_l:
s_l.append('("{}")'.format('","'.join(l)))
indb_step_s = '{}{};'.format(indb_fields_s, ','.join(s_l))
try:
mysql_write(indb_step_s)
except Exception as e:
logs_l = [e, indb_step_s]
logs_s = '||'.join(logs_l)
print(logs_s)
print(e) f = 'train.csv'
indb_step, indb_step_s = , ''
indb_fields_s = 'INSERT INTO `qqzone`.`myt` ( `aid`, `uid`, `label`) VALUES '
#myindb(f, indb_fields_s, indb_step) #f = 'test1.csv'
indb_step, indb_step_s = , ''
indb_fields_s = 'INSERT INTO `qqzone`.`myr` ( `aid`, `uid`) VALUES '
#myindb(f, indb_fields_s, indb_step) f = 'adFeature.csv'
indb_step, indb_step_s = , ''
indb_fields_s = 'INSERT INTO `qqzone`.`myadf` (`aid`, `advertiserId`, `campaignId`, `creativeId`, `creativeSize`,`adCategoryId`, `productId`, `productType`) VALUES '
#myindb(f, indb_fields_s, indb_step)

总的字段数、字段名确定,但是每行数据可能

缺失某些字段

千万数据条 用户特征数据 写入mysql的更多相关文章

  1. 第二篇:智能电网(Smart Grid)中的数据工程与大数据案例分析

    前言 上篇文章中讲到,在智能电网的控制与管理侧中,数据的分析和挖掘.可视化等工作属于核心环节.除此之外,二次侧中需要对数据进行采集,数据共享平台的搭建显然也涉及到数据的管理.那么在智能电网领域中,数据 ...

  2. MySql的InnoDB的三层B+树可以存储两千万左右条数据的计算逻辑

    总结/朱季谦 B+树是一种在非叶子节点存放排序好的索引而在叶子节点存放数据的数据结构,值得注意的是,在叶子节点中,存储的并非只是一行表数据,而是以页为单位存储,一个页可以包含多行表记录.非叶子节点存放 ...

  3. php从memcache读取数据再批量写入mysql的方法

    这篇文章主要介绍了php从memcache读取数据再批量写入mysql的方法,可利用memcache缓解服务器读写压力,并实现数据库数据的写入操作,非常具有实用价值,需要的朋友可以参考下. 用 Mem ...

  4. Python分析44130条用户观影数据,挖掘用户与电影之间的隐藏信息!

    01.前言 很多电影也上映,看电影前很多人都喜欢去 『豆瓣』 看影评,所以我爬取44130条 『豆瓣』 的用户观影数据,分析用户之间的关系,电影之间的联系,以及用户和电影之间的隐藏关系. 02.爬取观 ...

  5. PHP如何通过SQL语句将数据写入MySQL数据库呢?

    1,php和MySQL建立连接关系 2,打开 3,接受页面数据,PHP录入到指定的表中 1.2两步可直接使用一个数据库链接文件即可:conn.php <?phpmysql_connect(&qu ...

  6. 用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库

    小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的 当然了,这只是基础的demo,经供参考,但是相信也会有收获 今天的内容是用Nodejs+Express搭建基本的web,然后呢no ...

  7. [lua, mysql] 将多条记录数据组合成一条sql插入语句(for mysql)

    -- 演示将多条记录数据组合成一条sql插入语句(for mysql) function getTpl0(tname) -- 获取表各个字段 local t = { tpl_pack = {" ...

  8. [NodeJs] 用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库

    小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的 当然了,这只是基础的demo,经供参考,但是相信也会有收获 今天的内容是用Nodejs+Express搭建基本的web,然后呢no ...

  9. Mysql 数据备份与恢复,用户创建,授权

    Mysql 数据备份与恢复,用户创建,授权 1. Mysqldump >outfile.sql 2. Mysql –uxxx –pxxx < backfile.sql 3. Create  ...

随机推荐

  1. React初步学习-利用React构建个人博客

    React初步学习-利用React构建个人博客 用React和Webpack写了一个很简单的个人博客,主要是想要熟悉一下react中各种基本基本属性及方法的使用.在构建过程中碰到不少问题,通过阅读官方 ...

  2. nodejs学习(一) ---- nodejs + express应用生成器 快速创建应用

    1.node安装及环境配置(自行百度) 2.express安装及配置 (自行百度) 3.通过应用生成器工具 express 快速创建应用骨架   全局安装应用生成器 : npm install exp ...

  3. 利用类装饰器自定制property实现延迟计算

    class LazyProperty: ''' hello,我是非数据描述符(没有定义__set__,不然是大哥数据描述符了--!) ''' def __init__(self, func): pri ...

  4. 学习Python一年,基础忘记了,看看面试题回忆回议,Python面试题No3

    这边有几个面试题,好棒 第1题:你如何管理不同版本的代码? git,svn两个都要说到,github,码云也要提及,面试官想要的就是版本管理工具,你只要选择一个你熟悉的,疯狂的说一通就可以了,最好说一 ...

  5. IDEA 2018集成MyBatis Generator 插件 详解

    1.修改maven的pom文件 只需要将如下依赖添加到pom.xml文件中即可.(注意此处是以plugin的方式,放在<plugins> </plugins>中间即可) < ...

  6. JavaScript - 如果...没有方法(xjl456852修改)

    本文是对下面这篇文章中存在的错误进行修改,并增加少量注释. 原文出处: JavaScript - 如果...没有方法 http://www.cnblogs.com/silin6/p/4367019.h ...

  7. Leetcode 137.只出现一次的数字II

    只出现一次的数字II 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? ...

  8. nyoj 96 n-1位数(处理前导 0 的情况)(string)

    n-1位数 时间限制:3000 ms  |            内存限制:65535 KB 难度:1   描述 已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则 ...

  9. HDU 4948 (傻比图论)

    Kingdom Problem Description Teacher Mai has a kingdom consisting of n cities. He has planned the tra ...

  10. [K/3Cloud] 代码中设置某个字段必录

    Control ctl = this.GetControl(fieldKey); FieldEditor editCtl = ctl as FieldEditor; if (editCtl != nu ...