簡體   English   中英

使用scala在sql表中加載csv文件

[英]load csv file in sql table using scala

我有一個讀取csv文件並將csv文件加載到sql表的任務,但是我不確定我的代碼並面臨“沒有合適的驅動程序錯誤”並嘗試使用新的驅動程序。

val DBURL= "jdbc:sqlserver://servername:port;DatabaseName=DBname"  
val srcfile=spark.read.text("filename")
val test =srcfile.write.format("jdbc")
          .option("url", DBURL)
          .option("dbtable", "tablename")
          .option("user", "username")
          .option("password", "password")
          .save()

任何幫助,高度贊賞。

您也可以在選項中添加相應的驅動程序,例如.option(“驅動程序”,“ org.postgresql.Driver”)或.option(“驅動程序”,“ com.mysql.jdbc.Driver”)

我希望以下答案能對您有所幫助,並且嘗試了一個,所以它絕對不能有任何錯誤

def main(args: Array[String]): Unit = {
 val conf = new SparkConf().setAppName("Testing Transpose").setMaster("local[*]").set("spark.sql.crossJoin.enabled","true")
 val sc = new SparkContext(conf)
 val sparksession = SparkSession.builder().config("spark.sql.warehouse.dir","file:///c://tmp/spark-warehouse").getOrCreate()

 val sqlContext = new SQLContext(sc)
 import sqlContext.implicits._

 val df = sparksession.read.format("com.databricks.spark.csv").option("header", "true").load(Path)

 val prop : java.util.Properties = new Properties()
 prop.setProperty("user","(temp_User)")
 prop.setProperty("password","(temp_password)")

 df
  .write
  .option("driver","com.microsoft.sqlserver.jdbc.SQLServerDriver")
  .mode("append")
  .jdbc("jdbc:sqlserver://(database_ip):(database_port_to_access)","(table_name)",prop)

sparksession.stop()
}

如果要使用databricks.csv,請包含此依賴關系,否則可以替換它
val df = sparkSession.read.option("header","true").csv("src/main/resources/sales.csv")

這需要包含在build.sbt中
libraryDependencies += "com.databricks" % "spark-csv_2.10" % "0.1"

如果您的文件沒有標題,則可以為它們提供標題,如下所示

import sqlContext.implicits._
    df.toDF("column_name_1","column_name_2",.....)

注意 :列名的數量必須與數據幀中的列數相似,還有一點需要注意,您需要將header選項更改為false,如下所示

sparksession.read.format("com.databricks.spark.csv").option("header", "false").load(Path)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM