huohua: a distributed time series analysis framework for spark
TRANSCRIPT
![Page 1: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/1.jpg)
www.twosigma.com
Huohua 火花Distributed Time Series Analysis Framework For Spark
June 10, 2016
Wenbo Zhao
Spark Summit 2016
![Page 2: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/2.jpg)
About Me
June 10, 2016
w Software Engineer @
w Focus on analytics related tools, libraries and Systems
![Page 3: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/3.jpg)
$0.0
$500.0
$1,000.0
$1,500.0
$2,000.0
$2,500.0
1/3/
1950
1/3/
1953
1/3/
1956
1/3/
1959
1/3/
1962
1/3/
1965
1/3/
1968
1/3/
1971
1/3/
1974
1/3/
1977
1/3/
1980
1/3/
1983
1/3/
1986
1/3/
1989
1/3/
1992
1/3/
1995
1/3/
1998
1/3/
2001
1/3/
2004
1/3/
2007
1/3/
2010
1/3/
2013
1/3/
2016
S&P 500
We view everything as a time series
June 10, 2016
w Stock market prices
w Temperatures
w Sensor logs
w Presidential polls
w …
50°F
55°F
60°F
65°F
70°F
75°F
80°F
85°F
90°F
95°F
100°F
New York
San Francisco
![Page 4: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/4.jpg)
What is a time series?
June 10, 2016
w A sequence of observations obtained in successive time order
w Our goal is to forecast future values given past observations
$8.90 $8.95
$8.90
$9.06 $9.10
8:00 11:00 14:00 17:00 20:00
corn price?
![Page 5: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/5.jpg)
Multivariate time series
June 10, 2016
w We can forecast better by joining multiple time series
w Temporal join is a fundamental operation for time series analysis
w Huohua enables fast distributed temporal join of large scale unaligned time series
$8.90 $8.95 $8.90
$9.06 $9.10
8:00 11:00 14:00 17:00 20:00
corn price
75°F72°F 71°F 72°F
68°F 67°F65°F
temperature
![Page 6: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/6.jpg)
What is temporal join?
June 10, 2016
w A particular join function defined by a matching criteria over time
w Examples of criteria
w look-backward – find the most recent observation in the past
w look-forward – find the closest observation in the future
time series 1 time series 2
look-forward
time series 1 time series 2
look-backwardobservation
![Page 7: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/7.jpg)
Temporal join with look-backward criteria
June 10, 2016
time weather
08:00 AM 60 °F
10:00 AM 70 °F
12:00 AM 80 °F
time corn price
08:00 AM
11:00 AM
time weather corn price
08:00 AM10:00 AM12:00 AM
![Page 8: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/8.jpg)
Temporal join with look-backward criteria
June 10, 2016
time weather
08:00 AM10:00 AM12:00 AM
time corn price
08:00 AM
11:00 AM
time weather corn price
08:00 AM 60 °F
10:00 AM12:00 AM
time weather
08:00 AM 60 °F
10:00 AM 70 °F
12:00 AM 80 °F
![Page 9: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/9.jpg)
Temporal join with look-backward criteria
June 10, 2016
time weather
08:00 AM 60 °F
10:00 AM 70 °F
12:00 AM 80 °F
time corn price
08:00 AM
11:00 AM
time weather corn price
08:00 AM 60 °F
10:00 AM 70 °F
12:00 AM
![Page 10: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/10.jpg)
Temporal join with look-backward criteria
June 10, 2016
time weather
08:00 AM 60 °F
10:00 AM 70 °F
12:00 AM 80 °F
time corn price
08:00 AM
11:00 AM
time weather corn price
08:00 AM 60 °F
10:00 AM 70 °F
12:00 AM 80 °F
![Page 11: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/11.jpg)
time corn price
08:00 AM
11:00 AM
time corn price
08:00 AM
11:00 AM
time corn price
08:00 AM
11:00 AM
time weather
08:00 AM 60 °F
10:00 AM 70 °F
12:00 AM 80 °F
time weather
08:00 AM 60 °F
10:00 AM 70 °F
12:00 AM 80 °F
time weather
08:00 AM 60 °F
10:00 AM 70 °F
12:00 AM 80 °F
Temporal join with look-backward criteria
June 10, 2016
time weather
08:00 AM 60 °F
10:00 AM 70 °F
12:00 AM 80 °F
time corn price
08:00 AM
11:00 AM
time weather corn price
08:00 AM 60 °F
10:00 AM 70 °F
12:00 AM 80 °F…
…
Hundreds of thousands of data sources with unaligned timestamps
Thousands of market data sets
We need fast and scalable distributed temporal join
![Page 12: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/12.jpg)
Issues with existing solutions
June 10, 2016
w A single time series may not fit into a single machine
w Forecasting may involve hundreds of time series
w Existing packages don’t support temporal join or can’t handle large time series
w MatLab, R, SAS, Pandas
w Even Spark based solutions fall short
w PairRDDFunctions, DataFrame/Dataset, spark-ts
![Page 13: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/13.jpg)
Huohua – a new time series library for Spark
June 10, 2016
w Goal
w provide a collection of functions to manipulate and analyze time series at scale
w group, temporal join, summarize, aggregate …
w How
w build a time series aware data structure
w extending RDD to TimeSeriesRDD
w optimize using temporal locality
w reduce shuffling
w reduce memory pressure by streaming
![Page 14: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/14.jpg)
What is a TimeSeriesRDD in Huohua?
June 10, 2016
w TimeSeriesRDD extends RDD to represent time series data
w associates a time range to each partition
w tracks partitions’ time-ranges through operations
w preserves the temporal order
TimeSeriesRDD
operations
time series
functions
![Page 15: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/15.jpg)
TimeSeriesRDD– an RDD representing time series
June 10, 2016
time temperature6:00 AM 60°F
6:01 AM 61°F
… …
7:00 AM 70°F
7:01 AM 71°F
… …
8:00 AM 80°F
8:01 AM 81°F
… …
(6:00 AM, 60°F)(6:01 AM, 61°F)
…
RDD
(7:00 AM, 70°F)(7:01 AM, 71°F)
…
(8:00 AM, 80°F)(8:01 AM, 81°F)
…
![Page 16: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/16.jpg)
TimeSeriesRDD– an RDD representing time series
June 10, 2016
range: [06:00 AM, 07:00 AM)
range:[07:00 AM, 8:00 AM)
range: [8:00 AM, ∞)
TimeSeriesRDDtime temperature6:00 AM 60°F
6:01 AM 61°F
… …
7:00 AM 70°F
7:01 AM 71°F
… …
8:00 AM 80°F
8:01 AM 81°F
… …
(6:00 AM, 60°F)(6:01 AM, 61°F)
…
(7:00 AM, 70°F)(7:01 AM, 71°F)
…
(8:00 AM, 80°F)(8:01 AM, 81°F)
…
![Page 17: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/17.jpg)
Group function
June 10, 2016
w A group function groups rows with exactly the same timestamps
time city temperature
1:00 PM New York 70°F
1:00 PM San Francisco 60°F
2:00 PM New York 71°F
2:00 PM San Francisco 61°F
3:00 PM New York 72°F
3:00 PM San Francisco 62°F
4:00 PM New York 73°F
4:00 PM San Francisco 63°F
group 1
group 2
group 3
group 4
![Page 18: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/18.jpg)
Group function
June 10, 2016
w A group function groups rows with nearby timestamps
time city temperature
1:00 PM New York 70°F
1:00 PM San Francisco 60°F
2:00 PM New York 71°F
2:00 PM San Francisco 61°F
3:00 PM New York 72°F
3:00 PM San Francisco 62°F
4:00 PM New York 73°F
4:00 PM San Francisco 63°F
group 1
group 2
![Page 19: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/19.jpg)
Group in Spark
June 10, 2016
w Groups rows with exactly the same timestamps
RDD
1:00PM
2:00PM
2:00PM
1:00PM
3:00PM
3:00PM
4:00PM
4:00PM
![Page 20: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/20.jpg)
w Data is shuffled and materialized
Group in Spark
June 10, 2016
RDD
groupBy
RDD
1:00PM
2:00PM
2:00PM
1:00PM
3:00PM
3:00PM
4:00PM
4:00PM
![Page 21: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/21.jpg)
Group in Spark
June 10, 2016
w Data is shuffled and materialized
RDD
groupBy
RDD
1:00PM 1:00PM
3:00PM 3:00PM
2:00PM
4:00PM
2:00PM
4:00PM
![Page 22: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/22.jpg)
Group in Spark
June 10, 2016
w Data is shuffled and materialized
RDD
groupBy
RDD
1:00PM 1:00PM
2:00PM 2:00PM
3:00PM 3:00PM
4:00PM 4:00PM
![Page 23: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/23.jpg)
Group in Spark
June 10, 2016
w Temporal order is not preserved
RDD
groupBy
RDD
1:00PM
2:00PM
2:00PM
1:00PM
3:00PM
3:00PM
4:00PM
4:00PM
1:00PM 1:00PM
2:00PM 2:00PM
3:00PM 3:00PM
4:00PM 4:00PM
![Page 24: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/24.jpg)
Group in Spark
June 10, 2016
w Another sort is required
RDD
groupBy sortBy
RDD RDD
1:00PM
2:00PM
2:00PM
1:00PM
3:00PM
3:00PM
4:00PM
4:00PM
1:00PM 1:00PM
2:00PM 2:00PM
3:00PM 3:00PM
4:00PM 4:00PM
![Page 25: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/25.jpg)
Group in Spark
June 10, 2016
w Another sort is required
RDD
groupBy sortBy
RDD RDD
1:00PM
2:00PM
2:00PM
1:00PM
3:00PM
3:00PM
4:00PM
4:00PM
2:00PM 2:00PM
4:00PM 4:00PM
1:00PM 1:00PM
3:00PM 3:00PM
![Page 26: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/26.jpg)
Group in Spark
June 10, 2016
w Back to correct temporal order
RDD
groupBy sortBy
RDD RDD
1:00PM
2:00PM
2:00PM
1:00PM
3:00PM
3:00PM
4:00PM
4:00PM
1:00PM 1:00PM
2:00PM 2:00PM
3:00PM 3:00PM
4:00PM 4:00PM
![Page 27: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/27.jpg)
Group in Spark
June 10, 2016
w Back to temporal order
RDD
groupBy sortBy
RDD RDD
1:00PM
2:00PM
2:00PM
1:00PM
3:00PM
3:00PM
4:00PM
4:00PM
1:00PM 1:00PM
2:00PM 2:00PM
3:00PM 3:00PM
4:00PM 4:00PM
1:00PM 1:00PM
2:00PM 2:00PM
3:00PM 3:00PM
4:00PM 4:00PM
![Page 28: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/28.jpg)
Group in Huohua
June 10, 2016
w Data is grouped locally as streams
TimeSeriesRDD
1:00PM
2:00PM
2:00PM
1:00PM
3:00PM
3:00PM
4:00PM
4:00PM
![Page 29: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/29.jpg)
Group in Huohua
June 10, 2016
w Data is grouped locally as streams
TimeSeriesRDD
1:00PM
2:00PM
2:00PM
1:00PM
3:00PM
3:00PM
4:00PM
4:00PM
![Page 30: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/30.jpg)
Group in Huohua
June 10, 2016
w Data is grouped locally as streams
TimeSeriesRDD
1:00PM
2:00PM
1:00PM
3:00PM 3:00PM
4:00PM
4:00PM
2:00PM
![Page 31: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/31.jpg)
Group in Huohua
June 10, 2016
w Data is grouped locally as streams
TimeSeriesRDD
1:00PM
2:00PM
1:00PM
3:00PM 3:00PM
4:00PM 4:00PM
2:00PM
![Page 32: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/32.jpg)
Benchmark for group
June 10, 2016
w Running time of count after group
w 16 executors (10G memory and 4 cores per executor)
w data is read from HDFS
0s
20s
40s
60s
80s
100s
20M 40M 60M 80M 100M
RDD DataFrame TimeseriesRDD
![Page 33: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/33.jpg)
Temporal join
June 10, 2016
w A temporal join function is defined by a matching criteria over time
w A typical matching criteria has two parameters
w direction – whether it should look-backward or look-forward
w window - how much it should look-backward or look-forward
look-backward temporal join
window
![Page 34: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/34.jpg)
Temporal join
June 10, 2016
w A temporal join function is defined by a matching criteria over time
w A typical matching criteria has two parameters
w direction – whether it should look-backward or look-forward
w window - how much it should look-backward or look-forward
look-backward temporal join
window
![Page 35: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/35.jpg)
Temporal join
June 10, 2016
w Temporal join with criteria look-back and window of length 1
2:00AM
1:00AM
4:00AM
5:00AM
1:00AM
3:00AM
5:00AM
time series time series
![Page 36: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/36.jpg)
Temporal join
June 10, 2016
w Temporal join with criteria look-back and window of length 1
w How do we do temporal join in TimeSeriesRDD?
TimeSeriesRDD TimeSeriesRDD
2:00AM
1:00AM
4:00AM
5:00AM
1:00AM
3:00AM
5:00AM
![Page 37: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/37.jpg)
Temporal join in Huohua
June 10, 2016
w Temporal join with criteria look-back and window of length 1
w partition time space into disjoint intervals
TimeSeriesRDD TimeSeriesRDDjoined
2:00AM
1:00AM
4:00AM
5:00AM
1:00AM
3:00AM
5:00AM
![Page 38: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/38.jpg)
Temporal join in Huohua
June 10, 2016
w Temporal join with criteria look-back and window of length 1
w Build dependency graph for the joined TimeSeriesRDD
TimeSeriesRDD TimeSeriesRDDjoined
2:00AM
1:00AM
4:00AM
5:00AM
1:00AM
3:00AM
5:00AM
![Page 39: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/39.jpg)
Temporal join in Huohua
June 10, 2016
w Temporal join with criteria look-back and window 1
w Join data as streams per partition
1:00AM 1
TimeSeriesRDD TimeSeriesRDDjoined
1:00AM 1:00AM1:00AM
2:00AM
4:00AM
5:00AM
3:00AM
5:00AM
![Page 40: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/40.jpg)
Temporal join in Huohua
June 10, 2016
w Temporal join with criteria look-back and window 1
w Join data as streams
2:00AM
1:00AM
4:00AM
5:00AM
1:00AM
3:00AM
5:00AM
TimeSeriesRDD TimeSeriesRDDjoined
1:00AM 1:00AM1:00AM
2:00AM
![Page 41: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/41.jpg)
Temporal join in Huohua
June 10, 2016
w Temporal join with criteria look-back and window 1
w Join data as streams
2:00AM
1:00AM
4:00AM
5:00AM
1:00AM
3:00AM
5:00AM
TimeSeriesRDD TimeSeriesRDDjoined
1:00AM
1:00AM
1:00AM
2:00AM
4:00AM
3:00AM
![Page 42: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/42.jpg)
Temporal join in Huohua
June 10, 2016
w Temporal join with criteria look-back and window 1
w Join data as streams
2:00AM
1:00AM
4:00AM
5:00AM
1:00AM
3:00AM
5:00AM
TimeSeriesRDD TimeSeriesRDDjoined
1:00AM
1:00AM
1:00AM
2:00AM
4:00AM 3:00AM
5:00AM 5:00AM
![Page 43: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/43.jpg)
Benchmark for temporal join
June 10, 2016
w Running time of count after temporal join
w 16 executors (10G memory and 4 cores per executor)
w data is read from HDFS
0s
20s
40s
60s
80s
100s
20M 40M 60M 80M 100M
RDD DataFrame TimeseriesRDD
![Page 44: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/44.jpg)
Functions over TimeSeriesRDD
June 10, 2016
w group functions such as window, intervalization etc.
w temporal joins such as look-forward, look-backward etc.
w summarizers such as average, variance, z-score etc. over
w windows
w Intervals
w cycles
![Page 45: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/45.jpg)
Open Source
June 10, 2016
w Not quite yet …
w https://github.com/twosigma
![Page 46: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/46.jpg)
Future work
June 10, 2016
w Dataframe / Dataset integration
w Speed up
w Richer APIs
w Python bindings
w More summarizers
![Page 47: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/47.jpg)
Key contributors
June 10, 2016
w Christopher Aycock
w Jonathan Coveney
w Jin Li
w David Medinaw David Palaitis
w Ris Sawyer
w Leif Walsh
w Wenbo Zhao
![Page 48: Huohua: A Distributed Time Series Analysis Framework For Spark](https://reader033.vdocuments.mx/reader033/viewer/2022051709/586f7a461a28ab10258b72af/html5/thumbnails/48.jpg)
Thank you
June 10, 2016
w QA