1. 程式人生 > >利用LOAD DATA將csv檔案中的資料匯入MySQL

利用LOAD DATA將csv檔案中的資料匯入MySQL

先貼程式碼:

#coding=utf-8

import csv, os, re
import MySQLdb

_PATH = 'D:/bike_sharing_data/trip_data/trip_history/'
_TABLE_NAME = 'trip_history_raw'

filelist = os.listdir(_PATH)

conn = MySQLdb.connect(
    host='localhost',
    port=3306,
    user='root',
    passwd='****',
    db='bike_sharing'
)

cursor = conn.cursor()
pattern = re.compile(r'^20170[4-7]'
) for filename in filelist: path = _PATH + filename print filename if pattern.match(filename): data = 'LOAD DATA LOCAL INFILE \''+ path +'\' INTO TABLE '+ _TABLE_NAME + ' FIELDS TERMINATED BY \',\' ENCLOSED BY \'"\' LINES TERMINATED BY \'\n\' IGNORE 1 LINES (tripduration, starttime, stoptime, start_station_id, @1, @2, @3, end_station_id, @4, @5, @6, @7, usertype, @8, @9);'
else: data = 'LOAD DATA LOCAL INFILE \''+ path +'\' INTO TABLE '+ _TABLE_NAME + ' FIELDS TERMINATED BY \',\' ENCLOSED BY \'"\' LINES TERMINATED BY \'\r\n\' IGNORE 1 LINES (tripduration, starttime, stoptime, start_station_id, @1, @2, @3, end_station_id, @4, @5, @6, @7, usertype, @8, @9);'
cursor.execute(data) conn.commit() cursor.close()

這裡使用LOAD DATA的方式將資料匯入MySQL中,因為這種方法要比一行一行直接insert或者批量insert效率要高。

LOAD DATA格式:

LOAD DATA LOCAL INFILE 'path' 
    INTO TABLE '_TABLE_NAME'
    FIELDS TERMINATED BY ','
    ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    IGNORE 1 LINES
    (tripduration, starttime, stoptime, start_station_id, @1, @2, @3, end_station_id, @4, @5, @6, @7, usertype, @8, @9);

FIELDS TERMINATED BY ',':表示欄位分隔符;

ENCLOSED BY '"':表示每個欄位由雙引號包圍;

LINES TERMINATED BY '\n':表示行分隔符,在windows下需使用LINES TERMINATED BY '\r\n',否則只能讀取奇數(或偶數)行;特別地,若csv檔案中不存在換行符,windows下要用TERMINATED BY '\n',否則無法插入資料

IGNORE 1 LINES:表示忽略檔案的第一行,因為csv檔案的第一行是列名,所以插入資料時要忽略掉;

(tripduration, starttime, stoptime, start_station_id, @1, @2, @3, end_station_id, @4, @5, @6, @7, usertype, @8, @9):當我們只需要將csv(或其他格式)檔案中的部分列匯入MySQL表中時,可以使用@a過濾掉其他列的資料;其中的列名為資料庫中表的列名,排列順序與csv檔案的列保持一致。

相關推薦

利用LOAD DATAcsv檔案資料匯入MySQL

先貼程式碼: #coding=utf-8 import csv, os, re import MySQLdb _PATH = 'D:/bike_sharing_data/trip_data/trip_history/' _TABLE_NAME = 't

使用C#Excel檔案資料匯入SQL Server資料庫

由於專案中加入了新的功能,可以使管理員向資料庫中匯入Excel資料。因此,在商品管理這塊需要對Excel進行操作,在網上查了些資料,根據專案的實際情況進行了一定的優化,這裡簡單的介紹下。 C#程式碼 /// <summary> /// 上傳Excel檔案,並將資

SparkSql資料來源Hive資料匯入MySql例項

背景:能看到這篇部落格的夥計兒,應該是充分理解了[理想是豐滿的 現實是骨感]  這句名言了吧。為啥子這麼說呢,那就是 不就是個SparkSql從hive匯入到mysql嗎 有什麼技術含量,但是呢 不斷地踩坑ing填坑ing。 廢話不多說,直接上硬菜。 package co

pythoncsv檔案資料新增到MongoDB資料庫

使用csv中的DictReader函式讀取 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/10/21 11:31 # @Author : deli Guo # @Site :

linux下大檔案編碼轉碼及oracle資料匯入mysql

        這篇文章有不少廢話,只是為了發洩一下。如果讀者找需要解決的問題的辦法,直接無視這些廢話。             最近做的專案要將Oracle中資料匯入Mysql, 資料量約有兩千萬條,慶幸的是隻有一張表,而且資料結構比較簡單。在這個過程中遇到不少坑,現在

【C#.NET】excel或CSV檔案的sheet1匯入到dataGridView1 ,或者匯入到DataTable,匯入到DataSet

實現的效果: using System; using System.Data; using System.Data.OleDb; using System.Windows.Forms; namespace 淘寶單據接收器 {     public partial clas

JavaExcel表格資料匯入至資料庫的表

        上一節介紹了Java將資料庫表中資料匯出至Excel表格,那麼本節來介紹它的逆過程,也就是將Excel表格中的資料逐行匯入資料庫中的表中,依然需要使用Apache的POI,上一節已經說過也附了這個jar包的下載地址,這一節就不過多的說,直接講如

SpringMVC 實現POI讀取Excle檔案資料匯入資料庫(上傳)、匯出資料庫中資料到Excle檔案(下載)

package com.shiliu.game.utils; import java.io.OutputStream; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import

在ASP.NET中將Excel檔案資料匯入資料庫並顯示進度條

在ASP.NET中經常會遇到Excel檔案匯入資料庫的問題,遇到資料量比較大的時候,最好顯示進度條。 進度條設計是參考網上某牛人提供的程式碼,利用JS實現的,謝謝這個大牛了(忘記了當時記錄下他的大名了,:()。具體思路:首先將後臺伺服器上ProgressBar.htm 頁面內

mysql匯入資料load data infile用法(txt檔案資料匯入)

我們常常匯入資料!mysql有一個高效匯入方法,那就是load data infile 下面來看案例說明   基本語法: load data  [low_priority] [local] infile 'file_name txt' [replace | ignor

python操作txt檔案資料教程[3]-python讀取資料所有txt檔案資料轉為csv檔案

python操作txt檔案中資料教程[3]-python讀取資料夾中所有txt檔案並將資料轉為csv檔案 覺得有用的話,歡迎一起討論相互學習~Follow Me 參考文獻 python操作txt檔案中資料教程[1]-使用python讀寫txt檔案 python操作txt檔案中資料教程[2]-pyth

oracle通過load data 資料匯入通過儲存過程進行批量處理

說明:雖然沒圖,但文字表述很清楚,自己做過的專案留著備用(這只是初版,比較繁瑣,但很明確) 準備工作做完之後,後期可直接使用。如後期excel資料有變更,只需改動對應的部分即可,不涉及改動的可直接使用。 實際操作步驟 依照excel資料模版格式準備好建表語句,將中間過渡

Java下資料寫入CSV檔案

import java.io.*; import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.uti

資料寫入CSV檔案

在測試過程中需要將一些資料寫入CSV檔案中以在另一些Thread Group中使用, 所以Google了一個使用BeanShell的寫入CSV檔案的方法, 這個方法可以放在BeanShell post process, BeanShell Assertion裡面都可以, 在在

C++csv檔案資料讀入陣列

將形如 1,2,3 4,5,6 7,8,9 的csv檔案資料放入二維陣列中。 #include <iostream> #include <string

如何用java讀取csv檔案指定行列的資料,並csv資料元素隨機置零後儲存到另一個csv檔案

這個流程可以大致分為兩步驟:1.讀取csv檔案中的資料2.生成隨機數,將csv的資料隨機置零,將新生成的檔案儲存到新的csv中一、首先我們進行第一步:讀取csv中的檔案:讀取函式格式為public static double readin(int row,int col)

java資料寫入到csv檔案

   對於csv檔案,因為要將資料分別的寫入到每一個單元格中。用什麼來分開當前單元格和下一個單元格之間呢?這裡就用到了“  , ”逗號可以分割單元格。 舉例說明: 我們這裡用一個輸出流將資料寫入到csv檔案中 FileOutputStream fos=new FileOu

利用PythonExcel表資料匯入Mysql資料庫

 python操作Excel 需要匯入xlrd包,可以通過pip install xlrd 一鍵安裝。 #coding=utf-8 ''' python 將指定目錄下的excel檔案匯入到資料庫中 ''' # 引入資料庫包 import pymysql # 引入操作excel包

使用正則表示式和json.loads,JSON檔案資料轉化為pandas.DataFrame

使用正則表示式和json.loads,將JSON檔案中的資料轉化為pandas.DataFrame 說在前面 在使用Scrapy框架(爬蟲框架)爬取網頁資訊時,會定義一個ITEMS,然後通過PIPLINE將資料寫入到JSON檔案中,如果是按行寫入,則最後得到的資料就不是一個標準J

excel檔案資料匯入到資料庫的步驟

//1,在控制請中通過MultipartHttpServlerRequest multipartFiles獲取上傳的檔案 multipartFile file = multipartFiles.getFiles("file");//引數file是前端input上傳檔案標籤的name屬性;