利用跳板機連線mysql,匯出資料到csv
需求:
資料庫裡有很多店鋪的點位(經緯度)資訊,大概有900多萬條。現在需要將這900多萬條店鋪資料按照省份的欄位匯出,一共有34個省份。
其實人工可解,直接sql,按照省份匯出就行,當時我就是這麼做的,因為還沒接觸pandas哈哈。現在記錄一下,以後就不需要人肉儲存資料啦。
實現:
1.因為是外網環境,所以要用到跳板機連線
2.通過pandas迴圈匯出資料到不同問價。
用到的庫:
pandas,pymysql,sshtunnel
注意點:
使用TUNNEL.start() 之後一定要用TUNNEL.close(),否則這個執行緒會一直掛著。好像前段時間還因為這個坑了一下同事!
程式碼如下:
import pandas as pd
import pymysql
from sshtunnel import SSHTunnelForwarder
#通過查詢資料庫資料,匯出excel表
TUNNEL = SSHTunnelForwarder(("111.111.111.111", 1111), #跳板機的地址,埠
ssh_username="abcd", #跳板機使用者名稱
ssh_password="abcd", #跳板機訪問密碼
remote_bind_address=("172.11.11.11", 3306)) #目標資料庫地址&埠
TUNNEL.start()
conn = pymysql.connect(host='127.0.0.1',
port=TUNNEL.local_bind_port, #預設必填
user="111", #資料庫使用者名稱
password="11111",#資料庫密碼
database="1111") #資料庫名
#將所有省份放在陣列中,因為已經導好了,就隨便整兩三個
pl = ['山西省','江西省','河南省']
sql = "SELECT name,ADDRESS,lng,lat,pname,city_name from location WHERE pname='%s'"
#pandas匯入mysql資料
for p in pl:
sql1 = sql % p
print(sql1)
a = pd.read_sql(sql1,conn)
f = 'E:\\爬蟲\\pandas\\%s.csv' % p
print(f,'資料生成中')
a.to_csv(f,index=False,encoding='utf_8_sig')
conn.close()
TUNNEL.close()
相關文章
- 通過跳板機連線MySQLMySql
- 利用NPOI匯出資料到Execl
- SQLServer匯出匯入資料到MySQLServerMySql
- waterdrop匯出hdfs資料到clickhouse(text,csv,json)JSON
- mysql匯入匯出.csv格式資料MySql
- 【Mysql】匯出資料到excel檔案中MySqlExcel
- MySQL匯出資料為csv的方法MySql
- MySQL 匯出資料為csv格式的方法MySql
- asp.net中利用NPOI匯出資料到excel中ASP.NETExcel
- SSH 透過跳板機連線目標機
- spark sql與mysql 資料載入與匯出資料到mysqlSparkMySql
- [MySQL Help]MySQL Workbench用csv格式匯出資料亂碼MySql
- 使用mysqlimport匯入資料到mysqlMySqlImport
- 匯出資料為csv格式
- JavaScript 匯出csvJavaScript
- Sqoop匯出ClickHouse資料到HiveOOPHive
- PHP匯出大量資料到excel表格PHPExcel
- Python批量匯入Excel資料到MySQLPythonExcelMySql
- 使用load data匯入資料到mysqlMySql
- 利用Excel匯入資料到SAP C4CExcel
- php匯出csv格式PHP
- nodejs 匯出csvNodeJS
- Vue匯出資料到Excel電子表格VueExcel
- PHP 匯出大資料 CSV 檔案PHP大資料
- Mysql匯入csv檔案MySql
- 利用Java進行MySql資料庫的匯入和匯出JavaMySql資料庫
- 從CSV檔案匯入資料到Analytics Cloud裡建立模型和StoryCloud模型
- Mac和Linux之間傳輸資料,並匯出mysql資料到本地MacLinuxMySql
- 遠端伺服器連線(金鑰驗證,跳板機)伺服器
- java匯出CSV檔案Java
- ServiceNow如何匯出豎線分割的CSV檔案?
- linux 下MySQL命令列匯出csv檔案格式LinuxMySql命令列
- 使用csv批量匯入、匯出資料的需求處理
- 使用mysql直接匯出資料為txt或csv時使用-q引數MySql
- 用 PostgreSQL 的 COPY 匯入匯出 CSVSQL
- mysql匯入csv格式檔案MySql
- C#快速匯出百萬級資料到Excel方法C#Excel
- SQL通過bcp匯出資料到excel檔案SQLExcel