我正在尝试在推断架构的同时读取csv:
df = spark.read.csv('path/to/csv',
inferSchema=True,
header=True)
但是,我的数据包含一些格式错误的行,这导致某些列中的值溢出到其相邻列中。
所以我将模式设置为DROPMALFORMED:
df = spark.read.csv('path/to/csv',
inferSchema=True,
header=True,
mode='DROPMALFORMED')
这消除了格式错误的行,但是我从inferSchema获得的数据类型与以前相同。
例如,一列都是浮点数,但插入字符串的格式错误的行除外。因此,在代码的第一个版本中,推断出一个字符串类型列。 我期望添加DROPMALFORMED选项之后,它将正确地推断出一个float类型的列,但是我仍然得到了一个字符串类型。
在删除格式错误的行之后,是否有任何方法可以使其推断架构?还是我必须在没有格式错误的行的情况下重新保存,然后重新读取数据?