2016-11-15 4 views
0

Я запускаю Apache Spark 2.0.1 и Apache Zeppelin 0.6.2.Apache Zeppelin не возвращает агрегированные данные

В Цеппелина, у меня есть следующий пункт:

val df = sqlContext 
    .read 
    .format("org.apache.spark.sql.cassandra") 
    .options(Map("table" -> "iot_data2", "keyspace" -> "iot")) 
    .load() 

import org.apache.spark.sql.functions.{avg,round} 

val ts = $"updated_time".cast("long") 

val interval = (round(ts/3600L) * 3600.0).cast("timestamp").alias("time") 

df.groupBy($"a", $"b", $"date_bucket", interval).avg("t").createOrReplaceTempView("iot_avg") 

Следующий пункт Я пытаюсь построить график, но значение для средн («т») всегда 0:

%sql 
select time,avg("t") as avg_t from ble_temp_avg where a = '${a}' and b = '${b}' group by time order by time 

Я думаю, что мне не хватает чего-то действительно очевидного, но я просто не знаю, что это такое, как новый пользователь Spark и Zeppelin.

ответ

0

Это похоже на работу после того, как я переписать пункты:

В первом параграфе:

val df = sqlContext 
    .read 
    .format("org.apache.spark.sql.cassandra") 
    .options(Map("table" -> "iot_data2", "keyspace" -> "iot")) 
    .load() 

import org.apache.spark.sql.functions.{avg,round} 

val ts = $"updated_time".cast("long") 

val interval = (round(ts/3600L) * 3600.0).cast("timestamp").alias("time") 

df.select($"a", $"b", $"date_bucket", interval, $"t").createOrReplaceTempView("iot_avg") 

Во втором абзаце:

%sql 
select time,avg(t) as avg_t from iot_avg where a = 'test1' and b = 'test2' group by time order by time 
Смежные вопросы