【发布时间】:2017-01-24 03:31:44
【问题描述】:
我想从一个简单的 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 在 this blog post 中讨论了创建数据集和此特定错误消息。
编码器急切地检查您的数据是否与预期的架构匹配, 在您尝试错误之前提供有用的错误消息 处理 TB 的数据。例如,如果我们尝试使用的数据类型是 太小,以至于转换为对象会导致 截断(即 numStudents 大于一个字节,其中包含一个 最大值 255) 分析器将发出 AnalysisException。
我使用的是Long类型,所以没想到会看到这个错误信息。
【问题讨论】:
标签: apache-spark apache-spark-dataset