hive -e 'SELECT *, MIN(HIGH) OVER(PARTITION BY SYMBOL ORDER BY TIMESTAMP) AS MIN_YEARLY, MAX(HIGH) OVER(PARTITION BY SYMBOL ORDER BY TIMESTAMP) AS MAX_YEARLY, AVG(HIGH) OVER(PARTITION BY SYMBOL ORDER BY TIMESTAMP) AS AVG_YEARLY, STDDEV(HIGH) OVER(PARTITION BY SYMBOL ORDER BY TIMESTAMP) AS STD_YEARLY FROM NSEDATA ORDER BY SYMBOL;' | sed 's/[[:space:]]\+/,/g' > ~/output2.csv
运行此代码,我正在尝试导出一个csv,但出现以下错误:
ParseException第2:3行无法识别表达式规范中'MIN''('''HIGH'附近的输入
尝试添加表别名(d
),并使用select d.*
代替select *
:
hive -e "SELECT d.*,
MIN(HIGH) OVER(PARTITION BY SYMBOL ORDER BY TIMESTAMP) AS MIN_YEARLY,
MAX(HIGH) OVER(PARTITION BY SYMBOL ORDER BY TIMESTAMP) AS MAX_YEARLY,
AVG(HIGH) OVER(PARTITION BY SYMBOL ORDER BY TIMESTAMP) AS AVG_YEARLY,
STDDEV(HIGH) OVER(PARTITION BY SYMBOL ORDER BY TIMESTAMP) AS STD_YEARLY
FROM NSEDATA d
ORDER BY SYMBOL" | sed 's/[[:space:]]\+/,/g' > ~/output2.csv