#hadoop #hive #hiveql
#hadoop #улей #hiveql
Вопрос:
Я пишу сценарий улья, и мне нужно прочитать файл в hdfs внутри скрипта улья и использовать содержимое файла в запросе улья. Файл в формате hdfs содержит дату в одной строке.
Я знаю, что мы можем использовать команды unix в оболочке hive, используя « !
Но мне нужно использовать приведенную ниже команду, и она не работает с!
while IFS= read -r line; do snapshot_id=$line done < <(hadoop fs -cat /hdfs_path/date.txt)
select * from <tablename> where datestring = $snapshot_id
Возможно ли это. ?
Ответ №1:
Это похоже на то, что вам нужно,
#!/bin/bash
old_IFS=$IFS
IFS=$'n'
for line in $(hadoop fs -cat /hdfs_path/date.txt)
do
hive -f "select * from test where datestring = $line"
done
IFS=$old_IFS
Надеюсь, это поможет
Комментарии:
1. Я не хочу сценарий оболочки. Мне нужен скрипт hql, который я буду выполнять из oozie
2. почему вы не можете запускаться как действие оболочки вместо действия улья в oozie
3. Почему не оба? Вы должны иметь возможность передавать аргумент из действия оболочки в действие hive