91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

0016-Avro序列化&反序列化和Spark讀取Avro數據

發布時間:2020-06-02 03:06:57 來源:網絡 閱讀:469 作者:Hadoop實操 欄目:大數據

溫馨提示:要看高清無碼套圖,請使用手機打開并單擊圖片放大查看。

1.簡介

本篇文章主要講如何使用java生成Avro格式數據以及如何通過spark將Avro數據文件轉換成DataSet和DataFrame進行操作。

1.1Apache Arvo是什么?

Apache Avro 是一個數據序列化系統,Avro提供Java、Python、C、C++、C#等語言API接口,下面我們通過java的一個實例來說明Avro序列化和反序列化數據。

  • 支持豐富的數據結構
  • 快速可壓縮的二進制數據格式
  • 存儲持久數據的文件容器
  • 遠程過程調用(RPC)
  • 動態語言的簡單集成

2.Avro數據生成

2.1定義Schema文件

1.下載avro-tools-1.8.1.jar

Avro官網:http://avro.apache.org/ Avro版本:1.8.1 下載Avro相關jar包:avro-tools-1.8.1.jar 該jar包主要用戶將定義好的schema文件生成對應的java文件

2.定義一個schema文件,命名為CustomerAdress.avsc

{

"namespace":"com.peach.arvo",

"type": "record",

"name": "CustomerAddress",

"fields": [

{"name":"ca_address_sk","type":"long"},

{"name":"ca_address_id","type":"string"},

{"name":"ca_street_number","type":"string"},

{"name":"ca_street_name","type":"string"},

{"name":"ca_street_type","type":"string"},

{"name":"ca_suite_number","type":"string"},

{"name":"ca_city","type":"string"},

{"name":"ca_county","type":"string"},

{"name":"ca_state","type":"string"},

{"name":"ca_zip","type":"string"},

{"name":"ca_country","type":"string"},

{"name":"ca_gmt_offset","type":"double"},

{"name":"ca_location_type","type":"string"}

]

}

Schema說明:

  • namespace:在生成java文件時import包路徑
  • type:omplex types(record, enum,array, map, union, and fixed)
  • name:生成java文件時的類名
  • fileds:schema中定義的字段及類型

3.生成java代碼文件

使用第1步下載的avro-tools-1.8.1.jar包,生成java code

java -jar avro-tools-1.8.1.jar compile schema CustomerAddress.avsc .

末尾的"."代表java code 生成在當前目錄,命令執行成功后顯示:

0016-Avro序列化&反序列化和Spark讀取Avro數據

2.2使用Java生成Avro文件

1.使用Maven創建java工程

在pom.xml文件中添加如下依賴

<dependency>

<groupId>org.apache.avro</groupId>

<artifactId>avro</artifactId>

<version>1.8.1</version>

</dependency>

0016-Avro序列化&反序列化和Spark讀取Avro數據

2.新建java類GenerateDataApp,代碼如下

0016-Avro序列化&反序列化和Spark讀取Avro數據

0016-Avro序列化&反序列化和Spark讀取Avro數據

0016-Avro序列化&反序列化和Spark讀取Avro數據

動態生成avro文件,通過將數據封裝為GenericRecord對象,動態的寫入avro文件,以下代碼片段:

0016-Avro序列化&反序列化和Spark讀取Avro數據

3. Spark讀Avro文件

1.使用Maven創建一個scala工程

在pom.xml文件中增加如下依賴

0016-Avro序列化&反序列化和Spark讀取Avro數據

0016-Avro序列化&反序列化和Spark讀取Avro數據

2.Scala事例代碼片段

0016-Avro序列化&反序列化和Spark讀取Avro數據

3.Spark運行結果

0016-Avro序列化&反序列化和Spark讀取Avro數據

源碼地址:

https://github.com/javaxsky/avrotospark

醉酒鞭名馬,少年多浮夸! 嶺南浣溪沙,嘔吐酒肆下!摯友不肯放,數據玩的花!
溫馨提示:要看高清無碼套圖,請使用手機打開并單擊圖片放大查看。
0016-Avro序列化&反序列化和Spark讀取Avro數據

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

儋州市| 阳山县| 株洲市| 贵德县| 应城市| 武夷山市| 扎兰屯市| 华阴市| 乐亭县| 金乡县| 阿鲁科尔沁旗| 始兴县| 灵川县| 留坝县| 黄龙县| 巴林右旗| 固始县| 德阳市| 文昌市| 屯门区| 泸水县| 江油市| 平顶山市| 海宁市| 鞍山市| 阳原县| 拉孜县| 浠水县| 乾安县| 成都市| 池州市| 金塔县| 兰溪市| 镇巴县| 鄂托克旗| 昆明市| 翁牛特旗| 工布江达县| 通州市| 鄂州市| 色达县|