1. 程式人生 > >scala讀取csv檔案批量插入資料庫

scala讀取csv檔案批量插入資料庫

import java.io.FileWriter
import scala.io.Source



/** * 通過CSV檔案,及其預處理的欄位型別字串,輸出insert語句 */
class csv2InsertSQLServer {
  /** * @param CLASS_PATH 輸入/輸出路徑 
* @param inFilename 輸入檔名 
* @param tableName 表名 
* @param headType 表字段的型別,以豎線(|)分割 */
  def mkSQL(CLASS_PATH: String, inFilename: String, tableName: String, headType: String): Unit = {
    //輸入/輸出檔案
    val IN_FILE_NAME = CLASS_PATH + "\\inData\\" + inFilename
    val OUT_FILE_NAME = CLASS_PATH + "\\outData\\" + inFilename //SQL字串
    val inSqlString: StringBuilder = new StringBuilder //讀取檔案(CSV)
    val sourceFile = Source.fromFile(IN_FILE_NAME, "utf-8") //解析欄位型別
    val headTypeList: Array[String] = headType.split("\\|")
    //拼裝SQL
    inSqlString.append("insert into " + tableName + " values ")
    for (line <- sourceFile.getLines) {
      inSqlString.append("(")
      val lineList: Array[String] = line.split(",")
      val len = lineList.length for (i <- 0 to len - 1) {
        //null值處理
        if (lineList(i) == "\\N" || lineList(i) == "Null" || lineList(i) == "\\NuN") inSqlString.append("null,")
        //字元型別的欄位拼裝時候加引號
        else if (headTypeList(i).contains("varchar") || headTypeList(i).contains("string")) inSqlString.append("\"" + lineList(i) + "\",") else inSqlString.append(lineList(i) + ",")
      }
      inSqlString.deleteCharAt(inSqlString.length - 1)
      inSqlString.append("),\n")
    }
    val outFileWriter = new FileWriter(OUT_FILE_NAME)
    outFileWriter.write(inSqlString.deleteCharAt(inSqlString.length - 1).toString() + "\n")
    println(inSqlString.deleteCharAt(inSqlString.length - 1))
    outFileWriter.close()
    sourceFile.close()
  }
}

相關推薦

scala讀取csv檔案批量插入資料庫

import java.io.FileWriter import scala.io.Source /** * 通過CSV檔案,及其預處理的欄位型別字串,輸出insert語句 */ class csv2InsertSQLServer { /** * @param CL

Java讀取CSV檔案內容到資料庫

CSV檔案主要是以逗號分割資料的,程式碼如下: File csv = new File("E:\\GeoIP2-City-Locations-en.csv"); // CSV檔案路徑 BufferedReader br = null; br = new BufferedReader(

Python 讀取csv檔案批量入庫Mysql

注:僅為筆記 1、Python ftp連線,下載檔案 def ftpDownload() : #建立ftp物件例項 ftp = FTP() ftp.connect(FTPIP, FTPPORT) #通過賬號和密碼登入FTP伺服器 ftp.logi

Java讀取csv檔案並將內容插入資料庫

Java讀取csv檔案, 並使用jdbc將內容插入到資料庫, 插入資料庫的類可以在另一篇文章中檢視, 有一個公共的csv操作jar包,本文未使用 <dependency> <grou

如何讀取CSV檔案到DataTable中,然後存到資料庫

public void FileToDB()         {             string line = "";//將檔案中的一行資料讀出,賦值給line             int i = 0;//計數檔案中的行數               i

C#讀取CSV檔案並儲存進資料庫

/// <summary>       /// 讀檔案       /// </summary>       /// <param name="path">檔案路徑</param

java實現批量匯入.csv檔案到mysql資料庫

這篇博文是在參加CCF時匯入.csv檔案時自己總結的,雖然NavicatForMysql可以匯入.csv檔案,可是當我匯入的時候不知道是檔案太大還是什麼原因,總是會出現失敗。然後就用java寫了一個批量匯入資料的類去匯入該.csv檔案,這裡也沒有考慮程式碼的結構,只是為了快

Spring batch教程 之 讀取CSV檔案並寫入MySQL資料庫

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst

讀取csv檔案資料庫

lz使用javacsv.jar public static void main(String[] args) { @SuppressWarnings("resource")

Python批量讀取csv檔案併合並檔案

import pandas as pd import os # 獲取當前路徑 cwd = os.getcwd() # 要拼接的資料夾及其完整路徑,注意不要包含中文 ## 待讀取批量csv的資料夾名稱

android讀取csv檔案資料

csv檔案是一種表格形式的檔案,如果把檔案字尾名改為.txt,會發現同一行資料之間是用英文“,”隔開的。 如何讀取csv檔案以便把資料存入資料庫呢,特別是csv檔案中有些資料是空? csv檔案如下: 把檔案字尾名改為.txt後如下: 電錶id,電錶編號,模組地址,描述,所屬站點名稱,

C++讀取配置檔案.txt連線資料庫

mysql=mysql_init((MYSQL*)0); ifstream file; string path="D:/data.txt"; file.open(path.c_str()); string port1; string url; string name; str

改良昨天的指令碼,讀取CSV檔案生成散點圖

需要讀取的CSV檔案,資料參考以下表頭順序 讀取成功後生成散點圖檔案 “散點圖.html" 開啟網頁檔案時,同目錄下需要有 echarts.min.js 散點圖效果:   程式碼如下: # -*- coding: utf-8 -*- """ 讀取cs

Java使用opencsv 讀取csv檔案

maven依賴 <!-- https://mvnrepository.com/artifact/com.opencsv/opencsv --> <dependency> <groupId>com.opencsv</group

Python學習:讀取csv檔案

CSV是Conma Sepatrate Values(逗號分隔值)的縮寫,文件的內容是由‘,’分隔的一列列資料構成的。CSV格式是電子表格和資料庫最常用的匯入和匯出格式。 CSV模組實現了以CSV格式讀取和寫入表格資料,它允許程式設計師以Excel首選格式寫入資料,或者從Excel生成的檔

spark1.6.1讀取csv檔案,轉為為DataFrame和使用SQL

一、讀取csv spark2.0才開始原始碼支援CSV,所以1.6版本需要藉助第三方包來實現讀取CSV檔案,有好幾種方法, 1.如果有maven的,到https://spark-packages.org/package/databricks/spark-csv下載對應scala版本的第三方j

讀取csv 檔案 c#

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ReadCSV

匯入.csv檔案到mysql資料庫

首先通過如下命令獲取到mysql的secure_file_priv的值: show variables like '%secure%' secure_file_priv 的值是在對mysql匯入匯出csv檔案時的路徑,mysql的檔案只能匯入匯出到此路徑,我的的mysql資料庫的 sec

pandas讀取csv檔案進行處理時報錯: TypeError: invalid type compariso

用pandas讀取csv檔案並對csv裡面的資料進行處理的時候,有可能會遇到這樣的錯誤: TypeError: invalid type comparison 1 無效的型別比較 這時可以去列印一下你的dataframe中的資料看看 1、可能有些條目中沒有資料,列印

Java讀取CSV檔案CSV檔案資料內容包含逗號處理)

文章目錄 0. 前言 1. 解決方案 2. 程式碼片段 0. 前言 最近在公司寫專案時,有個匯入csv格式檔案資料的需求。Java讀取csv檔案時預設是按照 ,[英文逗號]分割的