Передайте параметры в скрипт hive, используя aws php sdk - PullRequest
3 голосов
/ 27 марта 2012

Я пытаюсь запустить скрипт куста на AWS EMR, используя php sdk. Как передать параметры сценария (например, ввод, вывод и даты для работы)?

Спасибо

Ответы [ 2 ]

1 голос
/ 24 апреля 2012

Если вы тоже с этим боретесь ...

Пример кода для передачи переменных в скрипт куста можно найти по следующему адресу: Тема на форуме Amazon

0 голосов
/ 27 июля 2012

Я сделал это с Java SDK, используя PHP SDK, по сути, вам нужно разобрать нужные параметры с помощью add_job_flow_steps function

При вызове функции необходимо добавить параметры в StepConfig (для сценария, который вы запускаете) в массиве «Args».

Args - string|array - Optional - A list of command line arguments passed to the JAR file’s main function when executed. Pass a string for a single value, or an indexed array for multiple values.

Формат аргументов немного сбивает с толку, вам нужен массив вида

( "- д", "yourVariable = itsValue", "- д", "anotherVariable = AnotherValue")

Так что это должно выглядеть примерно так:

 add_job_flow_steps('j-19430859jg9',array( new CFStepConfig(array(
'Name' => 'Run a hive script',
'HadoopJarStep' => array( 'Jar' => CFHadoopStep::run_hive_script(),
'Args' => array("-d","yourVariable=itsValue","-d","anotherVariable=AnotherValue")
))))

Не знаю, правильный ли синтаксис, я не пробовал.

По крайней мере, так обстоит дело с Java, может быть, для PHP вам может понадобиться ассоциированный массив, я бы попробовал различные форматы.

Полагаю, это так, что эти параметры не путают с другими параметрами конфигурации hadoop / hive.

Затем вы можете получить доступ к этим переменным в скрипте аналогично тому, как в bash, используя $ {yourVariable}.

SELECT * FROM TABLE WHERE column='${yourVariable};
...