sys.stdinから入力を取得しようとしています。これはhadoop用の地図縮小プログラムです。入力ファイルはtxt形式です。テキストファイルをインポート中:いいえ、ファイルから解析する列
: -delimiter = \t, header=False,defining column name
何も動いていないようにみえて、私も試してみました
import sys
df = pd.read_csv(sys.stdin,error_bad_lines=False)
、私は取得していますエラーは、このエラーで私がしようとしている
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
コード:データセットのプレビュー
[[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(ハイドープではない)で直接試してみると、うまくいきます。
私はstackoverflowの投稿を調べようとしましたが、投稿の1つがtryとexceptを提案しました。それを適用すると空のファイルが残ってしまいます。 誰でも助けることができますか?ありがとう
インポートSYS PD としてインポートパンダ__name__ == '__main__' の場合: DF = pd.read_csv(sys.stdinを、ヘッダ=なし、delim_whitespace = TRUE) 印刷DF – mezz
は同じエラーを取得。 – mezz
Pythonスクリプトの中から 'sys.stdin'を印刷できますか(' mid-1-reducer.py'は重要です)?単に 'readlines'関数かそれに類するものを使うことができます。それはあなたの質問にあなたが印刷した入力と同じ出力を与えますか? – DerWeh