我想从sys.stdin中获取输入。这是hadoop的地图缩减程序。输入文件是以txt格式。该数据集的预览:我一直在试图导入文本文件:否从文件解析列
196 242 3 881250949
186 302 3 891717742
22 377 1 878887116
244 51 2 880606923
166 346 1 886397596
298 474 4 884182806
115 265 2 881171488
253 465 5 891628467
305 451 3 886324817
6 86 3 883603013
62 257 2 879372434
286 1014 5 879781125
200 222 5 876042340
210 40 3 891035994
224 29 3 888104457
303 785 3 879485318
122 387 5 879270459
194 274 2 879539794
291 1042 4 874834944
码 -
import sys
df = pd.read_csv(sys.stdin,error_bad_lines=False)
我也试图与delimiter = \t, header=False,defining column name
似乎没有任何工作,我得到的错误是这样的错误:
[[email protected] lab]# cat /root/lab/u.data | python /root/lab/mid-1-mapper.py |python /root/lab/mid-1-reducer.py
Traceback (most recent call last):
File "/root/lab/mid-1-reducer.py", line 8, in <module>
df = pd.read_csv(sys.stdin,delimiter='\t')
File "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/pandas/io/parsers.py", line 645, in parser_f
return _read(filepath_or_buffer, kwds)
File "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/pandas/io/parsers.py", line 388, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)
File "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/pandas/io/parsers.py", line 729, in __init__
self._make_engine(self.engine)
File "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/pandas/io/parsers.py", line 922, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)
File "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/pandas/io/parsers.py", line 1389, in __init__
self._reader = _parser.TextReader(src, **kwds)
File "pandas/parser.pyx", line 538, in pandas.parser.TextReader.__cinit__ (pandas/parser.c:5896)
pandas.io.common.EmptyDataError: No columns to parse from file
但是,如果当我直接在python(而不是在hadoop)中尝试这个,它工作正常。
我试图查看到stackoverflow帖子,其中一个帖子建议尝试和除了。应用使我留下一个空文件。 任何人都可以帮忙吗?谢谢
进口SYS 进口熊猫作为PD 如果__name__ == '__main__': DF = pd.read_csv(sys.stdin,标题=无,delim_whitespace =真) 打印DF – mezz
仍然得到同样的错误。 – mezz
你可以从你的python脚本中打印出你的'sys.stdin'('mid-1-reducer.py'是否是重要的)?你可以简单地使用'readlines'函数或类似的东西。它是否提供与您在问题中输入的输入相同的输出? – DerWeh