在 Spark R 中读取制表符分隔的文本文件

Posted

技术标签:

【中文标题】在 Spark R 中读取制表符分隔的文本文件【英文标题】:Read tab delimited text file in Spark R 【发布时间】:2021-09-22 20:26:31 【问题描述】:

我有一个制表符分隔的文件,它保存为 .txt,字符串变量周围有“”。该文件可以在here找到。

我正在尝试将其读入 Spark-R(版本 3.1.2),但无法成功将其导入环境。我尝试了read.df 代码的变体,如下所示:

df <- read.df(path = "FILE.txt", header="True", inferSchema="True", delimiter = "\t", encoding="ISO-8859-15")

df <- read.df(path = "FILE.txt", source = "txt", header="True", inferSchema="True", delimiter = "\t", encoding="ISO-8859-15")

我已经成功使用read.csv 导入 CSV,但我拥有的许多文件超过 10GB,在将它们导入 Spark-R 之前将它们转换为 CSV 是不切实际的。

编辑:当我运行 read.df 时,我会得到一份错误清单,从以下开始:

我能够通过read.dfread.csv 引入之前项目中使用的csv 文件,所以我认为这不是java 问题。

【问题讨论】:

【参考方案1】:

如果您不需要专门使用 Spark R,那么 base R read.table 应该适用于您提供的 .txt。请注意,它是制表符分隔的,因此应指定。

这样的事情应该可以工作:

dat <- read.table("FILE.TXT",  
                  sep="\t",
                  header=TRUE)

【讨论】:

它没有。我希望 .txt 文件的链接会有所帮助。有什么我可以做的更清楚的吗? 查看更新,如果您不需要专门使用 R-Spark,我认为您可以使用 read.table 轻松解决此问题。 请注意,以上避免了您共享的读入错误,然后您当然可以将 dat 对象作为 df 输入 R-Spark,但如果问题是将其加载到内存中,那么这个没有帮助。 谢谢!问题是我的一些文件绝对是巨大的——大约 15GB 左右。我认为 SparkR 将是引入他们的最佳方式,因为运行 read.table 永远不会完成。 read.table 有没有办法处理这么大的文件?

以上是关于在 Spark R 中读取制表符分隔的文本文件的主要内容,如果未能解决你的问题,请参考以下文章

在 vba 中手动创建制表符分隔的文本文件

excel保存为制表符分隔的文本文件 js无法完整读取

R语言文件读取

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

如何上传Excel直接读取里面的数据,不用鎒xcel文件后再读取

从制表符分隔的 xls 文件中读取数据