1
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' 附近的输入

4

1 回答 1

1

尝试添加表别名 ( 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
于 2020-05-17T17:31:58.903 回答