首页 > 解决方案 > 加载平面文件时指定最大列宽

问题描述

我正在加载一个文件,该文件的许多列超过 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")

标签: apache-spark

解决方案


推荐阅读