利用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 DATA將csv檔案中的資料匯入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
python中csv檔案中資料新增到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
Java將Excel表格中資料匯入至資料庫中的表中
上一節介紹了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
利用Python將Excel表中的資料匯入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屬性;