mysql导入csv大数据
環境:
ubuntu18.10
python3.6
數據集來自kaggle:ieee-fraud-detection中的identity_test.csv
#########################################################################################
總體思路:
1.代碼連接數據庫建立表格
2.登錄mysql導入csv數據
#########################################################################################
①先csv的獲取列名,代碼如下:
import types lists="TransactionID,id_01,id_02,id_03,id_04,id_05,id_06,id_07,id_08,id_09,id_10,id_11,id_12,id_13,id_14,id_15,id_16,id_17,id_18,id_19,id_20,id_21,id_22,id_23,id_24,id_25,id_26,id_27,id_28,id_29,id_30,id_31,id_32,id_33,id_34,id_35,id_36,id_37,id_38,DeviceType,DeviceInfo"final_lists=[] remain=lists while True:if "," in remain:#如果包含兩個以上的列名print("type(remain)=",type(remain))print("remain=",len(remain))print("remain=",remain)result=remain.split(",",1)item1=result[0]+" text,"final_lists.append(item1)remain=result[1]else:final_lists.append(remain+" text")#建表時最后一行的列名后是不需要逗號的breakprint("------------------------最終輸出1---------------------------") for item in final_lists:print(item) print("------------------------最終輸出2---------------------------") print(final_lists) print("item[0]=",final_lists[0]) print("len(item)=",len(final_lists))得到:
TransactionID text,
id_01 text,
id_02 text,
id_03 text,
id_04 text,
id_05 text,
id_06 text,
id_07 text,
id_08 text,
id_09 text,
id_10 text,
id_11 text,
id_12 text,
id_13 text,
id_14 text,
id_15 text,
id_16 text,
id_17 text,
id_18 text,
id_19 text,
id_20 text,
id_21 text,
id_22 text,
id_23 text,
id_24 text,
id_25 text,
id_26 text,
id_27 text,
id_28 text,
id_29 text,
id_30 text,
id_31 text,
id_32 text,
id_33 text,
id_34 text,
id_35 text,
id_36 text,
id_37 text,
id_38 text,
DeviceType text,
DeviceInfo text
②建表,把①中的輸出填入②中的代碼,代碼如下:
?
③建立table完成后,登錄mysql,注意必須先指定數據庫才行,如下:
mysql> use ieee-fraud-detection; mysql> show variables like '%secure%';+--------------------------+-----------------------+ | Variable_name | Value | +--------------------------+-----------------------+ | require_secure_transport | OFF | | secure_auth | ON | | secure_file_priv | /var/lib/mysql-files/ | +--------------------------+-----------------------+mysql> load data infile '/var/lib/mysql-files/test_identity.csv' into table test_identity fields terminated by ',' LINES TERMINATED BY '\n' IGNORE 1 LINESQuery OK, 141907 rows affected (4.59 sec) Records: 141907 Deleted: 0 Skipped: 0 Warnings: 0解釋下上面的secure是因為mysql只接受在安全路徑下導入數據.
上面ignore的意思是:數據集的第一行是列名稱,列名稱在②中已經導入,所以這里不用再重復導入了.
?
總結
以上是生活随笔為你收集整理的mysql导入csv大数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql重置密码以及授予权限
- 下一篇: SQL统计指定的一列多少种取值