Pyspark 合并两个大文本文件
Posted
技术标签:
【中文标题】Pyspark 合并两个大文本文件【英文标题】:Pyspark combine two large text files 【发布时间】:2020-07-21 06:42:49 【问题描述】:我有两个带有一些数据的大文本文件 file_1.txt
和 file_2.txt
。我想将这些文件中的数据写入单个文件output.txt
,格式如下:
file_1.txt
数据:
header info 1
header info 2
.
.
.
header info n
file_2.txt
数据:
body info 1
body info 2
.
.
.
body info n
output.txt
数据:
header info 1
header info 2
.
.
.
header info n
body info 1
body info 2
.
.
.
body info n
使用 pyspark 或任何其他 python 模块最快的方法是什么?
编辑:
我使用的是 Windows 10
【问题讨论】:
cat file_1.txt file_2.txt > output.txt
在 Linux 上你可以做 cat file1.txt file2.txt > output.txt
。至于我使用 pyspark 将一个文件附加到另一个文件过于复杂。
谢谢大家,但我使用的是 Windows 10
然后在 powershell 中 type file_1.txt file_2.txt > output.txt
联合是最好的选择,只要确保你的列名相同
【参考方案1】:
这是一个 PySpark 实现。最快/最佳的连接实施取决于平台、文件大小、压缩方法。
您可以将文件读入单个 DataFrame。假设这两个文件都在some_folder
df = spark.read.text("some_folder")
df.repartition(1).write.text("some_output")
您也可以读入文件以分离 DataFrame,合并 DataFrame,然后写出结果。
df1 = spark.read.text("file1.txt")
df2 = spark.read.text("file1.txt")
unioned = df1.union(df2)
unioned.repartition(1).write.text("some_output")
【讨论】:
以上是关于Pyspark 合并两个大文本文件的主要内容,如果未能解决你的问题,请参考以下文章