日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Ignite集成Spark之IgniteDataFrames

 小牛學(xué)堂666 2018-10-12

Ignite是一個分布式的內(nèi)存數(shù)據(jù)庫、緩存和處理平臺,為事務(wù)型、分析型和流式負載而設(shè)計,在保證擴展性的前提下提供了內(nèi)存級的性能。

Spark是一個流式數(shù)據(jù)和計算引擎,通常從HDFS或者其他存儲中獲取數(shù)據(jù),一直以來,他都傾向于OLAP型業(yè)務(wù),并且聚焦于MapReduce類型負載。

因此,這兩種技術(shù)是可以互補的。

將Ignite與Spark整合

整合這兩種技術(shù)會為Spark用戶帶來若干明顯的好處:

通過避免大量的數(shù)據(jù)移動,獲得真正可擴展的內(nèi)存級性能;

提高RDD、DataFrame和SQL的性能;

在Spark作業(yè)之間更方便地共享狀態(tài)和數(shù)據(jù)。

下圖中顯示了如何整合這兩種技術(shù),并且標注了顯著的優(yōu)勢: 


IgniteDataframes

Spark的DataFrame API為描述數(shù)據(jù)引入了模式的概念,Spark通過表格的形式進行模式的管理和數(shù)據(jù)的組織。

DataFrame是一個組織為命名列形式的分布式數(shù)據(jù)集,從概念上講,DataFrame等同于關(guān)系數(shù)據(jù)庫中的表,并允許Spark使用Catalyst查詢優(yōu)化器來生成高效的查詢執(zhí)行計劃。而RDD只是跨集群節(jié)點分區(qū)化的元素集合。

Ignite擴展了DataFrames,簡化了開發(fā),改進了將Ignite作為Spark的內(nèi)存存儲時的數(shù)據(jù)訪問時間,好處包括:

通過Ignite讀寫DataFrames時,可以在Spark作業(yè)之間共享數(shù)據(jù)和狀態(tài);

通過優(yōu)化Spark的查詢執(zhí)行計劃加快SparkSQL查詢,這些主要是通過IgniteSQL引擎的高級索引以及避免了Ignite和Spark之間的網(wǎng)絡(luò)數(shù)據(jù)移動實現(xiàn)的。

IgniteDataframes示例

下面通過一些代碼以及搭建幾個小程序的方式,了解Ignite DataFrames如何使用,如果想實際運行這些代碼,可以從GitHub上下載。

一共會寫兩個Java的小應(yīng)用,然后在IDE中運行,還會在這些Java應(yīng)用中執(zhí)行一些SQL。

一個Java應(yīng)用會從JSON文件中讀取一些數(shù)據(jù),然后創(chuàng)建一個存儲于Ignite的DataFrame,這個JSON文件Ignite的發(fā)行版中已經(jīng)提供,另一個Java應(yīng)用會從Ignite的DataFrame中讀取數(shù)據(jù)然后使用SQL進行查詢。

下面是寫應(yīng)用的代碼:


在DFWriter中,首先創(chuàng)建了SparkSession,它包含了應(yīng)用名,之后會使用spark.read().json()讀取JSON文件并且輸出文件內(nèi)容,下一步是將數(shù)據(jù)寫入Ignite存儲。下面是DFReader的代碼:



在DFReader中,初始化和配置與DFWriter相同,這個應(yīng)用會執(zhí)行一些過濾,需求是查找所有的id > 0 以及 < 6的人,然后輸出結(jié)果。

在IDE中,通過下面的代碼可以啟動一個Ignite節(jié)點:



到此,就可以對代碼進行測試了。

運行應(yīng)用

首先在IDE中啟動一個Ignite節(jié)點,然后運行DFWriter應(yīng)用,輸出如下:


如果將上面的結(jié)果與JSON文件的內(nèi)容進行對比,會顯示兩者是一致的,這也是期望的結(jié)果。

下一步會運行DFReader,輸出如下:


這也是期望的輸出。

總結(jié)

通過本文,會發(fā)現(xiàn)使用Ignite DataFrames是如何簡單,這樣就可以通過Ignite DataFrame進行數(shù)據(jù)的讀寫了。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約