在 spark java 中读取具有固定宽度和分隔符的文本文件

Posted

技术标签:

【中文标题】在 spark java 中读取具有固定宽度和分隔符的文本文件【英文标题】:Read text files in spark java with fixed width as well as delimiters 【发布时间】:2019-08-19 05:03:46 【问题描述】:

我需要在 spark 中读取一个文本文件,该文件的前几列是固定宽度,其余列由“^”分隔。如何同时读取具有固定宽度和 '^' 分隔符的文件?

【问题讨论】:

您可以通过读取文件来创建一个数据帧,然后使用子字符串将其拆分为两个数据帧(正如您所说,其中一半是固定宽度,所以它必须有一个结束索引),然后像这样处理它这个答案:***.com/questions/57428503/… 如需详细解答,请提供源文件的sn-p。 【参考方案1】:

在数据帧 API 中使用内置的 csv 阅读器没有直接的方法。您需要将其作为 RDD 读入并使用自定义逻辑拆分为列。下面的代码 sn-p 显示了如何继续它。

val data = sc.textFile("filename.csv").map(line => <...custom logic to be applied on each row...>)

import spark.implicits._
data.toDF()

【讨论】:

以上是关于在 spark java 中读取具有固定宽度和分隔符的文本文件的主要内容,如果未能解决你的问题,请参考以下文章

Spark-Scala:使用异常处理将固定宽度线解析为 Dataframe Api

读取固定宽度格式,其中宽度是从列标题中推断出来的

Visual Basic 中读取逗号分隔的文本文件

将火花数据帧写入固定宽度文件java spark

在 Python 中编写固定宽度、空格分隔的 CSV 输出

Java Swing:具有固定宽度和可变高度的垂直布局