[英]Take the output of “select” in hive as the input of Hadoop jar input file
[英]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.