当interschema设置为True时,Pyspark如何自动决定列的数据类型,后台发生了什么? &



根据文档,

interschema:自动推断列类型。它需要一个额外的传递数据,默认为false

好的,我理解spark将读取CSV来确定数据类型并相应地分配。

我很想知道后台发生了什么。

  1. spark扫描整个csv吗?
  2. 如果它只扫描一个样本数据,那么它将扫描多少行?
  3. spark如何得出某某列是一个特定的数据类型,并在interschema = true上分配它?

谁能帮我更好地理解它或分享一些链接!

谢谢。

回答你的一些问题

  1. 默认情况下是,但在新版本中引入了采样比率,您可以定义需要扫描以推断模式的值的比例(默认为1)
  2. 默认情况下,所有的行,因为它提到它将需要一个额外的传递数据
  3. 它解析为每一个整数,长,双,bool和最后字符串或异常,如果解析失败,并给出最终的模式,你可以阅读一个早期版本的代码在这里

最新更新