Передача параметров скрипту Pig с помощью HDInsight

Я использую HDInsight для установки Hadoop в Windows и пытаюсь передать параметры сценарию свиньи. Я использовал пару сценариев на разных машинах, так что я думаю, что это может быть связано с Windows. Я установил значения по умолчанию, чтобы проверить, работают ли параметры в скрипте.

Пример скрипта:

%default myParam 'foo'
load('$myParam');

запуск пробного запуска из командной строки для тестирования: pig -r testSub.pig

приводит к:

load('foo');

но пытаюсь указать значение из командной строки:

pig -p myParam=bar -r testSub.pig

выдает ошибку:

2013-04-23 13:37:27,531 [main] ERROR org.apache.pig.Main - ERROR 2999: Unexpected internal error. Encountered unexpected arguments on command line - please check the command line.
Details at logfile: C:\Hadoop\hadoop-1.1.0-SNAPSHOT\logs\pig_1366720647495.log

и файл журнала говорит то же самое:

Error before Pig is launched
----------------------------
ERROR 2999: Unexpected internal error. Encountered unexpected arguments on command line - please check the command line.

java.lang.RuntimeException: Encountered unexpected arguments on command line - please check the command line.
    at org.apache.pig.Main.run(Main.java:500)
    at org.apache.pig.Main.main(Main.java:111)
================================================================================

Я пробовал использовать "-param", помещать вещи в одинарные и двойные кавычки, перемещать порядок, но безуспешно. Любые идеи, что попробовать дальше - есть ли какое-то странное экранирование, которое мне нужно добавить в командную строку Windows?


person TobyEvans    schedule 23.04.2013    source источник


Ответы (2)


Ваши аргументы -p в порядке. Вам нужно указать -x local -r -f <file>, например:

> pig -p myParam=bar -x local -r -f testSub.pig

Флаг -x local указывает, что pig должен работать локально без кластера mapreduce.

person Ian Stevens    schedule 23.04.2013
comment
спасибо Ян, но у него все та же проблема. Мне также нужен настоящий скрипт для запуска в кластере, но я думаю, что проблема в синтаксическом анализаторе Pig через командное окно Windows, а не в том, где скрипт запускается после этого - он никогда не заходит так далеко. - person TobyEvans; 23.04.2013
comment
@TobyEvans, ты нашел решение этой проблемы? у меня такая же проблема на винде - person DataGuru; 30.06.2014

У меня возникла та же проблема, начиная с версии 0.4 HDInsight (25 марта). Я также проверил сценарии, поместив значения параметров непосредственно в сценарий (работает нормально). Следовательно, это, вероятно, вещь «Windows». Одним из обходных путей является размещение ваших параметров в файле параметров (myparamfile.txt) и ссылка на него с помощью:

    > pig -f testsub.pig -m myparamfile.txt
person nDakota    schedule 03.05.2013