2016-11-23 184 views
-2

我是Apache Spark的新手。火花流聚合

我的Scala代码正在将JSON消息用作来自Apache Spark中Kafka主题的字符串。

现在我想聚集在我的JSON中的某个字段。我有什么选择?

+0

http://spark.apache.org/docs/latest/streaming-programming-guide.html – maasg

回答

1

您可以将JSON放入数据框/数据集并执行以下聚合操作。

  • GROUPBY
  • groupByKey
  • 汇总
  • 立方体

火花SQL可自动推断JSON数据集的模式和装载它作为一个数据集[行]。此转换可以使用String的RDD或JSON文件上的SparkSession.read.json()完​​成。

val json_path = "dir/example.json" 
val jsonDF = spark.read.json(json_path) 
jsonDF.groupBy("col1").count().show() 
+0

感谢@Arvind ..这对我的作品......现在还有另外一个挑战。我希望在整个批处理时间间隔内有一个特定数字字段的平均值,但该时间窗口中的数据会被分成多个RDD。而且我可以通过foreachRDD完成所有这些计算。有没有办法将所有RDDs应用到一起? –

+1

您可以合并所有RDD或数据框,将其注册为临时表并执行SQL以执行聚合操作。 –