我想從簡單的CSV文件創建Spark數據集。下面是CSV文件的內容:從CSV文件創建Spark數據集
name,state,number_of_people,coolness_index
trenton,nj,"10","4.5"
bedford,ny,"20","3.3"
patterson,nj,"30","2.2"
camden,nj,"40","8.8"
這裏是使數據集的代碼:
var location = "s3a://path_to_csv"
case class City(name: String, state: String, number_of_people: Long)
val cities = spark.read
.option("header", "true")
.option("charset", "UTF8")
.option("delimiter",",")
.csv(location)
.as[City]
以下是錯誤消息:「不能達到投number_of_people
從字符串到BIGINT,因爲它可能截斷「
Databricks談論如何在this blog post中創建數據集和此特定錯誤消息。
編碼器急切地檢查你的數據預期的架構, 匹配提供錯誤信息幫助你試圖將數據的錯誤 過程的TB之前。例如,如果我們嘗試使用 太小的數據類型,例如轉換爲對象會導致 截斷(即numStudents大於一個字節,其中最大值爲255),分析器將發出一個數據類型爲 AnalysisException。
我使用的是Long
類型,所以我沒想到會看到這個錯誤信息。