在 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.df
和read.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 中读取制表符分隔的文本文件的主要内容,如果未能解决你的问题,请参考以下文章
在 spark java 中读取具有固定宽度和分隔符的文本文件