我想从一个简单的 CSV 文件创建一个 Spark 数据集。以下是 CSV 文件的内容:
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 在此博客文章中讨论了创建数据集和此特定错误消息。
编码器会急切地检查您的数据是否与预期的模式匹配,在您尝试错误地处理 TB 数据之前提供有用的错误消息。例如,如果我们尝试使用太小的数据类型,这样转换为对象会导致截断(即 numStudents 大于一个字节,其最大值为 255),Analyzer 将发出 AnalysisException。
我正在使用该Long
类型,所以我没想到会看到此错误消息。