根据文档,
interschema:自动推断列类型。它需要一个额外的传递数据,默认为false
好的,我理解spark将读取CSV来确定数据类型并相应地分配。
我很想知道后台发生了什么。
- spark扫描整个csv吗?
- 如果它只扫描一个样本数据,那么它将扫描多少行?
- spark如何得出某某列是一个特定的数据类型,并在interschema = true上分配它?
谁能帮我更好地理解它或分享一些链接!
谢谢。
回答你的一些问题
- 默认情况下是,但在新版本中引入了采样比率,您可以定义需要扫描以推断模式的值的比例(默认为1)
- 默认情况下,所有的行,因为它提到它将需要一个额外的传递数据
- 它解析为每一个整数,长,双,bool和最后字符串或异常,如果解析失败,并给出最终的模式,你可以阅读一个早期版本的代码在这里