python - PySpark read.csv - inferSchema 和模式选项之间的交互
问题描述
我正在尝试在推断架构时读取 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 选项后,它会正确推断出浮点类型列,但我仍然得到了字符串类型。
有没有办法让它在删除格式错误的行后推断模式?还是我必须在没有格式错误的行的情况下重新保存,然后重新读取数据?
解决方案
推荐阅读
- javascript - 如何将图像导入我的 React Native 应用程序?
- python - 如何使用python脚本删除文件每一行中“==”之后的所有字符并更新文件?
- c# - System.Xml.XmlException:缺少根元素
- spring - Spring Bactch 写入空文件
- javascript - 如何正确更改对象的状态?
- apache - Flask 应用程序 Apache 部署后应用程序没有响应(mod_wsgi)
- ios - iOS swiftDelegate 文件在添加代码时出现黑屏,请指导
- c - 如何改进这个c程序以避免分段错误?
- asp.net - 使用 .net core 实现微服务之间的同步通信
- jquery - 单击标签时显示弹出窗口,并根据标签更改弹出内容