簡體   English   中英

如何使用Spark Dataset API匯總鍵列表?

[英]How to use Spark Dataset API to aggregate Key-List?

使用Spark 2.x ,從這樣的Dataset

|keyword    |url
|A1         |url1
|A1         |url2
|A1         |url3
|A1         |url4
|A2         |url1
|A2         |url2
|A2         |url3

我如何獲得:

|keyword    |url
|A1         |url1,url2,url3,url4
|A2         |url1,url2,url3

嘗試這個

import org.apache.spark.sql.functions._
val df = myDataset.groupBy("keyword").agg(collect_list("url"))

agg()GroupBy()將使您可以在agg()下執行所需的操作,您將獲得諸如collect_set()sum()等方法。

除了接受的答案,如果您希望以lambda方式執行相同的操作

        baseDS.rdd.filter { x => !x.getAs[String](0).contains("keyword") }.map { x =>
      (x.get(0), x.get(1))
    }.groupByKey().foreach(println(_))

注意:可以使用架構定義跳過filter()操作

結果

(A1,CompactBuffer(url1,url2,url3,url4))

(A2,CompactBuffer(url1,url2,url3))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM