Skip to content

Instantly share code, notes, and snippets.

@danared
Created October 26, 2015 21:15
Show Gist options
  • Select an option

  • Save danared/d206634d1ed13ee96d11 to your computer and use it in GitHub Desktop.

Select an option

Save danared/d206634d1ed13ee96d11 to your computer and use it in GitHub Desktop.
val dfFiveMinForMonth = sqlContext.sql(
"""
SELECT m.Symbol, m.OpenTime as Timestamp, m.Open, m.High, m.Low, m.Close
FROM
(SELECT
Symbol,
FIRST_VALUE(Timestamp)
OVER (
PARTITION BY floor(unix_timestamp(Timestamp, 'yyyy-MM-dd HH:mm')/(5*60))
ORDER BY Timestamp)
as OpenTime,
LAST_VALUE(Timestamp)
OVER (
PARTITION BY floor(unix_timestamp(Timestamp, 'yyyy-MM-dd HH:mm')/(5*60))
ORDER BY Timestamp)
as CloseTime,
FIRST_VALUE(Open)
OVER (
PARTITION BY floor(unix_timestamp(Timestamp, 'yyyy-MM-dd HH:mm')/(5*60))
ORDER BY Timestamp)
as Open,
MAX(High)
OVER (
PARTITION BY floor(unix_timestamp(Timestamp, 'yyyy-MM-dd HH:mm')/(5*60))
ORDER BY Timestamp)
as High,
MIN(Low)
OVER (
PARTITION BY floor(unix_timestamp(Timestamp, 'yyyy-MM-dd HH:mm')/(5*60))
ORDER BY Timestamp)
as Low,
LAST_VALUE(Close)
OVER (
PARTITION BY floor(unix_timestamp(Timestamp, 'yyyy-MM-dd HH:mm')/(5*60))
ORDER BY Timestamp)
as Close
FROM minbars
WHERE Timestamp >= '2010-07-01' AND Timestamp < '2010-08-01')
as m
WHERE unix_timestamp(m.CloseTime, 'yyyy-MM-dd HH:mm') - unix_timestamp(m.OpenTime, 'yyyy-MM-dd HH:mm') = 60*4"""
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment