簡體   English   中英

Hadoop Hive-創建自定義Hive輸入和輸出格式的最佳用例?

[英]Hadoop Hive - best use cases to create a custom Hive Input and Output formats?

僅想了解創建自定義Hive InputFormat和Output格式的最佳用例是什么?

如果您創建過任何人,請告訴我們何時決定開發自定義輸入/輸出格式?

謝謝,

要使Hive varchar的行為類似於Oracle varchar2:

在使用oracle進行hadoop遷移時,我們遇到了oracle中的一個設置,如果varchar2列的數據長度超過表DDL中定義的值,則oracle拒絕該記錄。

例如:假設我們在oracle和hadoop中有一列“名稱”,最大長度為10個字節

名稱varchar2(10 BYTE)-Oracle

名稱varchar(10)-蜂巢

如果name字段的值=“ lengthgreaterthanten”,則oracle將拒絕該記錄,因為oracle在寫入期間應用了架構。 蜂巢讀取“ lengthgrea”,即10個字符,因為蜂巢僅在從HDFS讀取記錄時應用架構。

為了解決這個問題,我們提出了一種自定義輸入格式,該格式通過分隔符來檢查varchar字段的長度。 如果長度大於指定的長度,它將繼續到下一條記錄。 否則,如果長度小於或等於指定的長度,則將記錄寫入HDFS。

希望這可以幫助。 謝謝

用於Hive的各種文件格式之一是RCFile,Parquet和ORC文件格式。 這些文件格式是列式文件格式。 這樣做的好處是,在讀取大型表時,您不必讀取和處理所有數據。 大多數聚合查詢僅引用幾列,而不是全部。 這極大地加快了處理速度。

其他應用程序可能會存儲,讀取和處理您的自定義輸入格式,其中數據的存儲方式可能與csv結構的存儲方式不同。 這些可能是二進制文件或任何其他結構。

您將必須遵循文檔來創建輸入格式。 有關詳細信息,您可以單擊以下鏈接: Hive的Custom InputFormat

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM