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

Running this code, I am trying to export a csv but I get the following error:

ParseException line 2:3 cannot recognize input near 'MIN' '(' 'HIGH' in expression specification

leftjoin
  • 36,950
  • 8
  • 57
  • 116

1 Answers1

1

Try to add table alias (d) and use select d.* instead of 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
leftjoin
  • 36,950
  • 8
  • 57
  • 116
  • Could you please have a look at https://stackoverflow.com/questions/61876238/assign-same-value-when-using-lag-function-if-column-used-in-lag-has-same-value – nmr May 19 '20 at 00:45
  • @nmr Answered, please check – leftjoin May 19 '20 at 08:43