Импорт текстового файла: нет столбцов для анализа из файлаPython

Программы на Python
Ответить
Anonymous
 Импорт текстового файла: нет столбцов для анализа из файла

Сообщение Anonymous »

Я пытаюсь получить данные из 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)
Я также пробовал использовать разделитель = \t, header=False, определяя имя столбца.
Кажется, ничего не работает, я получаю ошибку это ошибка:

Код: Выделить всё

[root@sandbox 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 
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, в одном из сообщений предлагалось попробовать и исключить. Применяя это, я получаю пустой файл.
Может ли кто-нибудь помочь? Спасибо

Подробнее здесь: https://stackoverflow.com/questions/401 ... -from-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»