在python中划分克拉

qxsslcnc  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(306)

我有表格中的数据:

37101000ssd48800^A1420asd938987^A2011-09-10^A18:47:50.000^A99.00^A1^A0^A
37101000sd48801^A44557asd03082^A2011-09-06^A13:24:58.000^A42.01^A1^A0^A

所以我先从字面上理解并尝试:

line = line.split("^A")

还有

line = line.split("\\u001")

所以,问题是:

如果这样做,第一种方法在本地计算机上有效:

cat input.txt | python mapper.py

它在本地运行良好(input.txt是上面的数据),但在hadoop流集群上失败。
有人告诉我应该使用 "\\u001" 作为分隔符,但这也不起作用,无论是在我的本地计算机上还是在集群上。

对于hadoop用户:

如果我在本地使用调试:

cat input.txt | python mapper.py | sort | python reducer.py

如果我用的话,这个就行了 "^A" 作为本地的分隔符,但是我在集群上运行时遇到了错误,错误代码也没有太大帮助。。。
关于如何调试这个有什么建议吗?
谢谢

ql3eal8s

ql3eal8s1#

如果原始数据使用一个控件a作为分隔符,并且它只是作为 ^A 无论使用什么方法列出数据,都有两种选择:
将列表中使用的数据通过管道传输到使用 split('^A') .
只是使用 split('\u001') 按实际控制值拆分。
后者几乎总是你真正想要的。你没有这么做的原因是你写的 split('\\u001') ,对反斜杠进行转义,因此在文本字符串上进行拆分 \u001 而不是控制a。
如果原始数据 ^A (插入符号后接 A )作为分隔符,只需使用 split('^A') .

相关问题