我使用Apache PIG处理一些数据,在我的脚本末尾我使用
store data into '/mypath/tempp2' using PigStorage('\t','-schema');
fs -getmerge /mypath/tempp2 /localpath/data.tsv;
这样我就有一个tsv
文件,我可以在Pandas中使用read_csv(headers=0)
阅读。
问题是tsv
文件现在包含第一行的标题(这很好),但是连接到第二行中第一个观察的模式,例如:
col1 col2 col3
{pigschema}0 1 2
假设第一行是[0,1,2]
。因此,除非我在skiprows=1
中使用read_csv
(丢失该行),否则我的数据中会出现这种奇怪的观察结果。
所以我想知道在获取标题时是否有更好的方法来导出我的数据。
非常感谢!
答案 0 :(得分:2)
首先,您要对-nl
使用-getmerge
参数:
store data into '/mypath/tempp2' using PigStorage('\t','-schema');
fs -getmerge -nl /mypath/tempp2 /localpath/data.tsv;
可选择-nl可以设置为启用添加换行符(LF) 每个文件的结尾。
然后您将在/localpath/data.tsv
以下结构中使用
0 - headerline
1 - empty line
2 - PIG schema
3 - empty line
4 - 1-st line of DATA
5 - 2-nd line of DATA
...
所以现在你可以在熊猫中轻松阅读:
df = pd.read_csv('/localpath/data.tsv', sep='\t', skiprows=[1,2,3])