apache-spark - 加载平面文件时指定最大列宽
问题描述
我正在加载一个文件,该文件的许多列超过 1000+ 个字符(在某些情况下为 4000-8000 个字符),并且当我从文件中查询生成的数据帧时收到此错误:
FileReadException:读取文件时出错 dbfs:/fin/fm/spynotesandcommentsfile.txt 原因:TextParsingException:java.lang.ArrayIndexOutOfBoundsException - null 原因:ArrayIndexOutOfBoundsException:
在阅读器中,我可以指定选项 ( .option("option",true)
) 并且一直在寻找一个选项以允许所有列的最大宽度,因为无法查询结果数据帧。实际的读者需要在此处为从文件加载到数据框中的每一列允许最大宽度,这就是为什么许多关于多列(不是问题)或增长数据框(不是问题)的解决方案不能解决这个问题的原因问题。
val spyfile = spark.read.format("csv")
.option("delimiter", ",")
.option("maximumColumnWidthAllowed", true) ///if this existed or a similar option
我能够确认文件中某一行上的一个字段的字符长度为 12,043。如果我指定.option("maxCharsPerColumn", -1
或.option("maxCharsPerColumn", "-1")
解决方案
推荐阅读
- python - 通过复杂的转置或子设置操作创建新的 pandas 数据帧
- docker - 如何使用 docker-compose.yml 在映射为卷的目录中克隆 GitHub 存储库?
- typescript - 在 TypeScript 中将嵌套对象属性提升一级
- python - Pandas DataFrame:单元格已修改,但更改未保存
- python - 强化学习(使用 TensorFlow 和 Matlab 环境)
- swift - Swift UI Slider 需要一秒钟来注册手指
- javascript - 将元素的值传递给 angularjs 控制器作用域
- python - 将 Flask 应用程序部署到 Elastic Beanstalk 时出现什么错误?
- discord - 在嵌入 discord.py 中创建段落
- javascript - ReactJS 中的开闭原则