2016-11-23 182 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以執行聚合操作。 –