У меня есть сценарий, из которого я передаю параметры переменной улья. Весь поток выглядит так, как показано ниже. Одна из переменных улья усекается.
cat ‹* script.sh
beeline -u "$HIVESERVER" \
-f $path_to.hql \
--hivevar TRGT_DB=$HIVE_TRGT_DB \
--hivevar SRC_CLMN=$SOURCE_CLMNS \
--hivevar INBND_DB=$HIVE_SRC_DB \
--hivevar SRC_TBL=$SOURCE_TABLE \
--hivevar TRGT_TBL=$TRGT_TABLE \
Все переменные передаются правильно, кроме переменной столбца (SRC_CLMN), которая усекается.
SRC_CLMN извлекается из файла, как показано ниже.
SRC_CLMN=`cat source_column.tbl | grep table | (some sed functions)`
Вывод переменной SRC_CLMN:
обрезать (regexp_replace (col1, '[^ a-zA-Z]', '')) как col1, обрезать (col2) как col2, обрезать (regexp_extract (col1, "\ (([^)] +) \)" , 1)) как col3, обрезать (col4) как col4, обрезать (col5) как col5, обрезать (col6) как col6, '' как col7, обрезать (col8) как col8, обрезать (col9) как col9, обрезать (col10 ) как col10, обрезать (col11) как col11, обрезать (col12) как col12, обрезать (col13) как col13
Когда я печатаю переменную, она печатает всю строку.
Но когда я печатаю переменную улья с помощью SET SRC_CLMN; я вижу только до "обрезать (regexp_replace (col1,"
Таким образом, это вызывает ошибку в запросе улья.