您好,登錄后才能下訂單哦!
溫馨提示:要看高清無碼套圖,請使用手機打開并單擊圖片放大查看。
1.簡介
本篇文章主要講如何使用java生成Avro格式數據以及如何通過spark將Avro數據文件轉換成DataSet和DataFrame進行操作。
1.1Apache Arvo是什么?
Apache Avro 是一個數據序列化系統,Avro提供Java、Python、C、C++、C#等語言API接口,下面我們通過java的一個實例來說明Avro序列化和反序列化數據。
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說明:
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 生成在當前目錄,命令執行成功后顯示:
2.2使用Java生成Avro文件
1.使用Maven創建java工程
在pom.xml文件中添加如下依賴
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
<version>1.8.1</version>
</dependency>
2.新建java類GenerateDataApp,代碼如下
動態生成avro文件,通過將數據封裝為GenericRecord對象,動態的寫入avro文件,以下代碼片段:
3. Spark讀Avro文件
1.使用Maven創建一個scala工程
在pom.xml文件中增加如下依賴
2.Scala事例代碼片段
3.Spark運行結果
源碼地址:
https://github.com/javaxsky/avrotospark
醉酒鞭名馬,少年多浮夸! 嶺南浣溪沙,嘔吐酒肆下!摯友不肯放,數據玩的花!
溫馨提示:要看高清無碼套圖,請使用手機打開并單擊圖片放大查看。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。