[英]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.