У меня есть данные в форме:
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"
в качестве разделителя, но это тоже не работает ни на моей локальной машине, ни на кластерах.
Для пользователей хаупа:
Если я отлаживаю его локально, используя:
cat input.txt | python mapper.py | sort | python reducer.py
Это работает просто отлично, если я использую "^A"
в качестве разделителя на локальном компьютере, но я получаю ошибки при работе в кластерах, и код ошибки также не слишком полезен...
Любые предложения о том, как я могу отладить это?
Спасибо.
\x53
. Это должно быть так же, как ^ - person PearsonArtPhoto   schedule 20.11.2012^A
во всем, что вы используете для перечисления своих данных, или это на самом деле знак вставки, за которым следуетA
? Если это первое, вам нуженline.split('\u001')
(дополнительная обратная косая черта - вот почему это не работает для вас). Если последнее,line.split('^A')
. - person abarnert   schedule 20.11.2012'\x53'
сработает, а'^'
нет? - person abarnert   schedule 20.11.2012