微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

合并TSV文件以为Apache Arrow表创建新的TSV

如何解决合并TSV文件以为Apache Arrow表创建新的TSV

我有两个TSV文件(header.tsv和data.tsv)header.tsv拥有1000多个列名,data.tsv拥有约5万条记录(列值也为NULL)。我想通过将data.tsv文件附加到header.tsv来创建一个新的TSV文件(例如,combined.tsv)。这样做的原因是创建一个最终的TSV文件,在其中可以将列名和数据保存在一起,并尝试查看在创建Apache Arrow表时是否可以避免错误

**header.tsv**
field1 field2 field3 field4 ... field1000 

**data.tsv**
eng-en    1er2p  NULL  ert,yu1  ...  2020-09-16
frnch-fr  2er3p  NULL  ert,yu2  ...  2020-09-16
.
.
.
ltn-lt    50Ker  NULL  ert,yu50K ... 2020-09-16

必需的TSV

**combined.tsv**
field1    field2   field3   field4    ...   field1000
eng-en    1er2p    NULL     ert,yu1   ...   2020-09-16
frnch-fr  2er3p    NULL     ert,yu2   ...   2020-09-16
.
.
.
ltn-lt    50Ker    NULL     ert,yu50K ...   2020-09-16

我已经使用了SHELL命令

paste header.tsv data.tsv > combined.tsv

,然后尝试创建一个pyarrow表。

import pyarrow as pa
import pyarrow.csv as csv
combined = csv.read_csv('combined.tsv',parse_options=csv.ParSEOptions(delimiter="\t"))

执行上述操作时出现错误

ArrowInvalid: CSV parse error: Expected 2010 columns,got 1006

header.tsv文件正好具有1005列,可以解析此header.tsv文件以创建pyarrow表,而不是data.tsv文件

import pyarrow as pa
import pyarrow.csv as csv
header = csv.read_csv('headers.tsv',parse_options=csv.ParSEOptions(delimiter="\t")) 
head_show=header.to_pandas()
head_show.head()

我什至尝试通过以下方式使用pyarrow的concat_tables方法

import pyarrow as pa
final_combined = pa.concat_tables(header,data)

错误

TypeError: Cannot convert pyarrow.lib.ChunkedArray to pyarrow.lib.Table

如果我的方法有误,请纠正我。

解决方法

要创建合并的CSV,您想将标题和数据连接起来:

cat header.csv data.csv > combined.csv

使用“粘贴”将执行“水平”串联-合并每个文件的第一,第二,第三,...行,形成长行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?