成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Apache beam其他學(xué)習(xí)記錄

jasperyang / 3552人閱讀

摘要:與用于與的轉(zhuǎn)換。其中方法返回的是在中的位置下標(biāo)。對(duì)于設(shè)置了多個(gè)觸發(fā)器的,自動(dòng)選擇最后一個(gè)觸發(fā)的結(jié)算結(jié)果。其他不是線程安全的,一般建議處理方法是冪等的。

Combine與GroupByKey

GroupByKey是把相關(guān)key的元素聚合到一起,通常是形成一個(gè)Iterable的value,如:

cat, [1,5,9]
dog, [5,2]
and, [1,2,6]

Combine是對(duì)聚合后的Iterable進(jìn)行處理(如求和,求均值),返回一個(gè)結(jié)果。內(nèi)置的Combine.perKey()方法其實(shí)是GroupByKey和Combine的結(jié)合,先聚合和處理。
Beam中還有許多內(nèi)置的處理類,比如Sum.integersPerKey(),Count.perElement()等
在全局窗口下,對(duì)于空輸入,Combine操作后一般會(huì)返回默認(rèn)值(比如Sum的默認(rèn)返回值為0),如果設(shè)置了.withoutDefault(),則返回空的PCollection。
在非全局窗口下,用戶必須指明空輸入時(shí)的返回類型,如果Combine的輸出結(jié)果要作為下一級(jí)處理的輸入,一般設(shè)置為.asSingletonView(),表示返回默認(rèn)值,這樣即使空窗口也有默認(rèn)值返回,保證了窗口的數(shù)量不變;如果設(shè)置了.withoutDefault(),則空的窗口返回空PCollection,一般作為最后的輸出結(jié)果。

Platten與Patition

用于PCollection與PCollectionList的轉(zhuǎn)換。
官方文檔給的Platten代碼很容易理解:

// Flatten takes a PCollectionList of PCollection objects of a given type.
// Returns a single PCollection that contains all of the elements in the PCollection objects in that list.
PCollection pc1 = ...;
PCollection pc2 = ...;
PCollection pc3 = ...;
PCollectionList collections = PCollectionList.of(pc1).and(pc2).and(pc3);

PCollection merged = collections.apply(Flatten.pCollections());

將一個(gè)PCollectionList={ PCollection{String1}, PCollection{String2}, PCollection{String3} }轉(zhuǎn)換為一個(gè)PCollection={String1, String2, String3}.
而Patition剛好反過(guò)來(lái),要將PCollection轉(zhuǎn)換為PCollectionList需要指明分成的list長(zhǎng)度以及如何劃分,因此需要傳遞劃分長(zhǎng)度size和劃分方法Fn。

// Split students up into 10 partitions, by percentile:
PCollectionList studentsByPercentile =
    students.apply(Partition.of(10, new PartitionFn() {
        public int partitionFor(Student student, int numPartitions) {
            return student.getPercentile()  // 0..99
                 * numPartitions / 100;
        }}));

其中partitionFor()方法返回的是在PCollectionList中的位置下標(biāo)。

Side Input

不能使用硬編碼數(shù)據(jù),通常是轉(zhuǎn)換中間產(chǎn)生的數(shù)據(jù)。一般用于跟主輸入數(shù)據(jù)進(jìn)行比較,因此要求Side Input數(shù)據(jù)的窗口要與主輸入數(shù)據(jù)的窗口盡量一致,如果不一致,Beam會(huì)盡可能地從Side Input中找到合適的位置的數(shù)據(jù)進(jìn)行比較。對(duì)于設(shè)置了多個(gè)觸發(fā)器的Side Input,自動(dòng)選擇最后一個(gè)觸發(fā)的結(jié)算結(jié)果。

附屬輸出數(shù)據(jù) Additional Outputs

這一部分官方的代碼已經(jīng)寫得很清楚,看代碼即可。

數(shù)據(jù)編碼

在Pipeline的數(shù)據(jù)處理過(guò)程中經(jīng)常需要對(duì)數(shù)據(jù)元素進(jìn)行字節(jié)轉(zhuǎn)換,因此需要制定字節(jié)轉(zhuǎn)換的編碼格式。對(duì)于絕大部分類型的數(shù)據(jù),Beam都提供了默認(rèn)的編碼類型,用戶也可以通過(guò)SetCoder指定編碼類型。
1)從內(nèi)存讀取的輸入數(shù)據(jù)一般要求用戶指定其編碼類型;
2)用戶自定義的類對(duì)象一般要求用戶指定其編碼類型,或者可以在類定義上使用@DefaultCoder(AvroCoder.class)指定默認(rèn)編碼類型。

其他:

Beam不是線程安全的,一般建議處理方法是冪等的。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67678.html

相關(guān)文章

  • Apache Beam采坑系列——KafkaIO

    摘要:最近在用做流上的異常檢測(cè),期間遇到了很多問(wèn)題,但是發(fā)現(xiàn)網(wǎng)上相關(guān)的資料很少,基本只能自己啃文檔和瞎嘗試。其中如有錯(cuò)漏,歡迎指出。即從一條數(shù)據(jù)中獲得時(shí)間戳,然后以的格式返回。丟棄掉中的附加信息使用這一設(shè)置時(shí),得到的中的元素是的和組成的鍵值對(duì)。 最近在用Apache beam做流上的異常檢測(cè),期間遇到了很多問(wèn)題,但是發(fā)現(xiàn)網(wǎng)上相關(guān)的資料很少,基本只能自己啃文檔和瞎嘗試。所以想把自己踩過(guò)的坑記錄...

    iliyaku 評(píng)論0 收藏0
  • Apache Beam學(xué)習(xí)筆記——幾種常見的處理類Transform

    摘要:要說(shuō)在中常見的函數(shù)是哪一個(gè),當(dāng)然是。是一個(gè)實(shí)現(xiàn)了接口的抽象類,其中是數(shù)據(jù)處理方法,強(qiáng)制子類必須實(shí)現(xiàn)。以上為學(xué)習(xí)一天的總結(jié),有錯(cuò)誤歡迎指正。相同的是這個(gè)方法處理的都是中的一個(gè)元素。 在閱讀本文前,可先看一下官方的WordCount代碼, 對(duì)Apache Beam有大概的了解。 要說(shuō)在Apache Beam中常見的函數(shù)是哪一個(gè),當(dāng)然是apply()。常見的寫法如下: [Final Outp...

    Chiclaim 評(píng)論0 收藏0
  • Apache Beam的分窗與觸發(fā)器

    摘要:需要注意的是和方法生成的觸發(fā)器是連續(xù)的而不是一次性的。其他的還有一次性觸發(fā)器將一次性觸發(fā)器變?yōu)檫B續(xù)型觸發(fā)器,觸發(fā)后再次等待觸發(fā)。例如與一起用可以實(shí)現(xiàn)每個(gè)數(shù)據(jù)到達(dá)后的分鐘進(jìn)行處理,經(jīng)常用于全局窗口,可以用觸發(fā)器來(lái)設(shè)置停止條件。 本文參考Apache Beam官方編程手冊(cè) 可以結(jié)合官方的Mobile Game 代碼閱讀本文。 在默認(rèn)情況下,Apache Beam是不分窗的,也就是采用Gl...

    NickZhou 評(píng)論0 收藏0
  • Apache Beam訪問(wèn)HDFS

    摘要:一直接訪問(wèn)引入的相關(guān)包使用代替給指定配置與訪問(wèn)本地文件一樣訪問(wèn)文件實(shí)際測(cè)試中發(fā)現(xiàn)本地如能夠成功讀寫,但是集群模式下如讀寫失敗,原因未知。二通過(guò)訪問(wèn)除了直接讀寫的數(shù)據(jù),還可以通過(guò)來(lái)進(jìn)行讀寫。 一、直接訪問(wèn) 1.引入HDFS的相關(guān)jar包: org.apache.beam beam-sdks-java-io-hadoop-file-system 2.1.0...

    UCloud 評(píng)論0 收藏0
  • ApacheCN 學(xué)習(xí)資源匯總 2019.1

    摘要:主頁(yè)暫時(shí)下線社區(qū)暫時(shí)下線知識(shí)庫(kù)自媒體平臺(tái)微博知乎簡(jiǎn)書博客園我們不是的官方組織機(jī)構(gòu)團(tuán)體,只是技術(shù)棧以及的愛(ài)好者合作侵權(quán),請(qǐng)聯(lián)系請(qǐng)抄送一份到基礎(chǔ)編程思想和大數(shù)據(jù)中文文檔中文文檔中文文檔中文文檔中文文檔中文文檔中文文檔中文文檔中文文檔中文文檔區(qū)塊 【主頁(yè)】 apachecn.org 【Github】@ApacheCN 暫時(shí)下線: 社區(qū) 暫時(shí)下線: cwiki 知識(shí)庫(kù) 自媒體平臺(tái) ...

    cheng10 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<