2016-02-22 5 views
0

Когда я выполняю эту команду оболочки, она дает мне первый файл как null. Я сохраняю его вывод в массиве, поэтому в массиве мой первый элемент равен NULL. Почему это так?Команда Hadoop ls возвращает null

hadoop fs -ls /user/hive/warehouse/mashery_db.db/agg_per_mapi_stats_five_minutes/ | sort | awk '{ if (index($8, ".hive") == 0 && $6 $7 <= "'"2016-02-10 05:00"'") print $8 }'

+0

Я не уверен, что это связано с Hadoop, является файл ОК? – gsamaras

+0

Файл ОК означает что? @gsamaras –

+0

Я имею в виду, что если вы откроете файл не в HDFS (например), вы получите ожидаемый результат? – gsamaras

ответ

2

Когда мы делаем hadoop fs -ls, первая линия, которую мы получаем на консоли что-то подобное,

Найден 10 пунктов

Вы уверены, что вы не обрабатываете это линия тоже? Потому что это может привести к нулевому элементу.

Если возможно, не могли бы вы предоставить вывод команды hadoop fs -ls /user/hive/warehouse/mashery_db.db/agg_per_mapi_stats_five_minutes/ для справки?

EDIT:

Попробуйте это:

hadoop fs -ls /user/hive/warehouse/mashery_db.db/agg_per_mapi_stats_five_minutes/ | grep -v "^Found" | sort | awk '{ if (index($8, ".hive") == 0 && $6 $7 <= "'"2016-02-10 05:00"'") print $8 }'

+0

Я имею в виду вывод ** JUST ** этой команды: 'hadoop fs -ls/user/hive/warehouse/mashery_db.db/agg_per_mapi_stats_five_minutes /' – daemon12

+0

символ новой строки между командами и выходными файлами. @ Daemon12 –

+0

Я выполнил: Hadoop фс -ls /user/hive/warehouse/mashery_db.db/agg_per_mapi_stats_five_minutes/ я получаю «Найдено 229 пунктов» Но когда я выполнение всей команды я не получаю это «Найдено Элементы XYZ ' –

Смежные вопросы