日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql导入csv大数据

發布時間:2023/12/20 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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
②建表,把①中的輸出填入②中的代碼,代碼如下:

import pymysql # 打開數據庫連接 db = pymysql.connect("localhost","appleyuchi","appleyuchi","ieee-fraud-detection" ) # 使用 cursor() 方法創建一個游標對象 cursor cursor = db.cursor() # 使用 execute() 方法執行 SQL,如果表存在則刪除 cursor.execute("DROP TABLE IF EXISTS EMPLOYEE") # 使用預處理語句創建表 sql = """CREATE TABLE test_identity ( 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)""" cursor.execute(sql) print("CREATE TABLE OK") # 關閉數據庫連接

?

③建立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大数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。