Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Timeseries图表:数据作为行而不是列_Apache Spark_C3.js - Fatal编程技术网

Apache spark Timeseries图表:数据作为行而不是列

Apache spark Timeseries图表:数据作为行而不是列,apache-spark,c3.js,Apache Spark,C3.js,我想用一个条形图作为可视化,来描述在每个日期运行几个应用程序中的一个的次数(为简单起见,将应用程序想象为excel、word、powerpoint等。例如,在3月15日,如果用户打开excel一次,word两次,word将显示两个高度,excel等将显示一个高度) 可视化显示一年的堆叠数据(365条),其中每个堆叠条对每个程序使用不同的颜色。有20个程序。数据系列是堆叠的-例如,Word(如果有描述)始终位于底部,然后是Excel等 传统的方法是使用outerjoin,每天创建365行和20列(

我想用一个条形图作为可视化,来描述在每个日期运行几个应用程序中的一个的次数(为简单起见,将应用程序想象为excel、word、powerpoint等。例如,在3月15日,如果用户打开excel一次,word两次,word将显示两个高度,excel等将显示一个高度)

可视化显示一年的堆叠数据(365条),其中每个堆叠条对每个程序使用不同的颜色。有20个程序。数据系列是堆叠的-例如,Word(如果有描述)始终位于底部,然后是Excel等

传统的方法是使用outerjoin,每天创建365行和20列(Word、Excel等),每列都有一个整数值。这种技术很有效,但在数据库上计算量很大(更不用说密集的SQL),我想知道是否有人知道处理此问题的timeseries图表工具。 这是一个数据透视问题:我想提取行中的数据,让图表产品组装条形图。它需要从数据中读取数据系列名称,并在遇到新值时创建一个新的数据系列。我实际上有数千个可能的程序,但每个图表不太可能需要描述超过20个

图表产品的工作原理如下: minDate=20150101,maxDate=20151231,间隔时间=天 然后数据就被删除了

20150315 "Word" 1
20150315 "Word" 1
20150315 "Excel" 1
20150316 "Powerpoint" 1
20150316 "Word" 1
或者,每行可以是每个计划每天的总数:

20150315 "Word" 2
20150315 "Excel" 1
20150316 "Powerpoint" 1
20150316 "Word" 1

我正在使用C3,使用spark和scala。我可以使用任何javascript库。

您要问的是如何将数据从宽格式改为长格式。在spark中,您使用的是
DataFrame.explode
。假设您有这样的东西:

+--------+----+-----+
|    date|word|excel|
+--------+----+-----+
|20150101|   3|    4|
|20150102|   1|    2|
+--------+----+-----+
您可以通过以下方式对其进行重塑:

df.explode($"word", $"excel"){case row  => 
  Seq(("Word", row.getInt(0)), ("Excel", row.getInt(1)))
}.select($"date", $"_1" as "app", $"_2" as "count")
为此:

+--------+-----+-----+
|    date|  app|count|
+--------+-----+-----+
|20150101| word|    3|
|20150101|excel|    4|
|20150102| word|    1|
|20150102|excel|    2|
+--------+-----+-----+