我是加载CSV数据在火花数据与设置inferSchema选项为true。尽管我的CSV文件的模式总是相同的,而且我知道确切的模式。
手动提供模式而不是推断模式是个好主意吗?显式提供架构是否提高了性能?
发布于 2017-08-09 08:57:11
是的,很好。架构Infter将导致该文件被读取两次-一次用于架构推断,第二次用于读取数据集。
来自DataFrameReader的火花代码-类似的是在DataStreamReader中
如果启用了
inferSchema,此函数将遍历输入一次以确定输入模式。为了避免检查整个数据一次,禁用inferSchema选项或使用schema显式指定模式。
但是,可能很难维护100个数据集的架构,每个数据集有200列。您还应该考虑到可维护性-所以,典型的答案将取决于:)对于不是那么大的模式或不那么困难的推断,但是对于大型文件,我建议使用用代码编写的自定义模式。
https://stackoverflow.com/questions/45585502
复制相似问题