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

溫馨提示×

溫馨提示×

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

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

怎么把Avro數據轉換為Parquet格式

發布時間:2021-08-12 12:00:38 來源:億速云 閱讀:285 作者:chen 欄目:云計算

這篇文章主要講解了“怎么把Avro數據轉換為Parquet格式”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么把Avro數據轉換為Parquet格式”吧!

本文主要測試將Avro數據轉換為Parquet格式的過程并查看 Parquet 文件的 schema 和元數據。

準備

將文本數據轉換為 Parquet 格式并讀取內容,可以參考 Cloudera 的 MapReduce 例子:https://github.com/cloudera/parquet-examples。

準備文本數據 a.txt 為 CSV 格式:

1,2
3,4
4,5

準備 Avro 測試數據,可以參考 將Avro數據加載到Spark 一文。

本文測試環境為:CDH 5.2,并且 Avro、Parquet 組件已經通過 YUM 源安裝。

將 CSV 轉換為 Parquet

在 Hive 中創建一個表并導入數據:

create table mycsvtable (x int, y int)
row format delimited
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

LOAD DATA LOCAL INPATH 'a.txt' OVERWRITE INTO TABLE mycsvtable;

創建 Parquet 表并轉換數據:

create table myparquettable (a INT, b INT)
STORED AS PARQUET
LOCATION '/tmp/data';

insert overwrite table myparquettable select * from mycsvtable;

查看 hdfs 上生成的 myparquettable 表的數據:

$ hadoop fs -ls /tmp/data
Found 1 items
-rwxrwxrwx   3 hive hadoop        331 2015-03-25 15:50 /tmp/data/000000_0

在 hive 中查看 myparquettable 表的數據:

hive (default)> select * from myparquettable;
OK
myparquettable.a  myparquettable.b
1 2
3 4
4 5
Time taken: 0.149 seconds, Fetched: 3 row(s)

查看 /tmp/data/000000_0 文件的 schema :

$ hadoop parquet.tools.Main schema /tmp/data/000000_0
message hive_schema {
  optional int32 a;
  optional int32 b;
}

查看 /tmp/data/000000_0 文件的元數據:

$ hadoop parquet.tools.Main meta /tmp/data/000000_0
creator:     parquet-mr version 1.5.0-cdh6.2.0 (build 8e266e052e423af5 [more]...

file schema: hive_schema
--------------------------------------------------------------------------------
a:           OPTIONAL INT32 R:0 D:1
b:           OPTIONAL INT32 R:0 D:1

row group 1: RC:3 TS:102
--------------------------------------------------------------------------------
a:            INT32 UNCOMPRESSED DO:0 FPO:4 SZ:51/51/1.00 VC:3 ENC:BIT [more]...
b:            INT32 UNCOMPRESSED DO:0 FPO:55 SZ:51/51/1.00 VC:3 ENC:BI [more]...

將 Avro 轉換為 Parquet

使用 將Avro數據加載到Spark 中的 schema 和 json 數據,從 json 數據生成 avro 數據:

$ java -jar /usr/lib/avro/avro-tools.jar fromjson --schema-file twitter.avsc twitter.json > twitter.avro

將 twitter.avsc 和 twitter.avro 上傳到 hdfs:

$ hadoop fs -put twitter.avsc
$ hadoop fs -put twitter.avro

使用 https://github.com/laserson/avro2parquet 將 avro 轉換為 parquet 格式:

$ hadoop jar avro2parquet.jar twitter.avsc  twitter.avro /tmp/out

然后,在 hive 中創建表并導入數據:

create table tweets_parquet (username string, tweet string, timestamp bigint) 
STORED AS PARQUET;

load data inpath '/tmp/out/part-m-00000.snappy.parquet' overwrite into table tweets_parquet;

感謝各位的閱讀,以上就是“怎么把Avro數據轉換為Parquet格式”的內容了,經過本文的學習后,相信大家對怎么把Avro數據轉換為Parquet格式這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

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

AI

丁青县| 黄梅县| 含山县| 昌图县| 扎赉特旗| 江达县| 伊金霍洛旗| 铜川市| 江北区| 崇仁县| 黔西县| 杭州市| 和平县| 德钦县| 曲阳县| 望江县| 株洲县| 方城县| 金阳县| 大竹县| 青川县| 普安县| 兴宁市| 新宁县| 松阳县| 浙江省| 黔东| 隆德县| 会理县| 瑞丽市| 正宁县| 来宾市| 庄河市| 禄丰县| 黄骅市| 宾阳县| 财经| 萍乡市| 乌鲁木齐市| 奉节县| 四子王旗|