2017-09-09 41 views
0

在ORC格式中以蜂巢形式創建表時出現錯誤。 以下是創建表腳本。以ORC格式創建表時出現Hive錯誤

CREATE TABLE tgt_ebr_agreements_item_notes STORED AS INPUTFORMAT 
'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' OUTPUTFORMAT 
'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' LOCATION 'hdfs://ss-pit- 
linx-012.abccorp.abc.com:8020/user/hive/warehouse/abc_sqlserver_test.db/abc_sqlserver 
_test_TGT_EBR_AGREEMENTS_ITEM_NOTES' TBLPROPERTIES ( 
'COLUMN_STATS_ACCURATE'='false', 'numFiles'='0', 'numRows'='-1', 'orc.compress'='SNAPPY', 'rawDataSize'='-1', 'totalSize'='0') 
AS SELECT price_schedule_item.legal_entity, 
     region.rn_descriptor, 
     price_schedule_item.account_manager, 
     price_schedule_item.agreement_number, 
     company.company_name, 
     price_schedule_item.vendor, 
     price_schedule_item.line_start_date, 
     price_schedule_item.line_end_date, 
     price_schedule_item.activity, 
     price_schedule_item.tracking_status, 
     price_schedule_item.product_line, 
     price_schedule_item.grade, 
     price_schedule_item.Color_Category, 
     price_schedule_item.color, 
     price_schedule_item.product_item, 
     price_schedule_item_price.Release_Quantity, 
     price_schedule_item_price.Projected_Volume, 
     price_schedule_item_price.List_Price, 
     price_schedule_item_price.Target, 
     price_schedule_item_price.Guideline1, 
     price_schedule_item_price.invoice_price, 
     price_schedule_item_price.Requested_Price, 
     price_schedule_item_price.Misc_Impacts, 
     price_schedule_item_price.Payment_Terms, 
     price_schedule_item_price.Net_Price, 
     currency_.currency_code, 
     Market.Market_Name, 
     Applications.application_name, 
     price_schedule_item.Delta_Comp_Name, 
     price_schedule_item.Delta_Comp_Product, 
     price_schedule_item.Delta_Comp_Grade, 
     price_schedule_item.Delta_Comp_Price, 
     price_schedule_item.Delta_Comp_Evid_Code, 
     price_schedule_item.Comp_Bracket, 
     Rn_Appointments.Appt_Date, 
     Rn_Appointments.Notes, 
     Rn_Appointments.Assigned_to_descriptor 
    FROM price_schedule_item_price price_schedule_item_price 
    JOIN price_schedule_item price_schedule_item 
     ON price_schedule_item_price.price_schedule_item_id=price_schedule_item.price_schedule_item_id 
    JOIN agreement agreement 
     ON price_schedule_item.agreement_id=agreement.agreement_id 
    JOIN company company 
     ON agreement.company_id=company.company_id 
    JOIN currency_ currency_ 
     ON price_schedule_item.currency_id=currency_.currency_id 
    JOIN territory territory 
     ON company.territory_id=territory.territory_id 
    JOIN region region 
     ON territory.region_id=region.region_id left outer 
    JOIN Market Market 
     ON Market.Market_Id = price_schedule_item.Market_Segment_Id left outer 
    JOIN Application Applications 
     ON price_schedule_item.application_ID = Applications.application_ID left outer 
    JOIN Rn_Appointments Rn_Appointments 
     ON price_schedule_item_price.price_schedule_item_id=Rn_Appointments.price_schedule_item_id 
    where price_schedule_item.tracking_status ='Active' and price_schedule_item.activity ='Active Price Schedule' 
    ORDER BY region.rn_descriptor,price_schedule_item.account_manager,price_schedule_item.Agreement_number,price_schedule_item.Product_Line, price_schedule_item.grade,price_schedule_item.color 

我越來越:

「失敗的執行錯誤,從org.apache.hadoop.hive.ql.exec.MapRedTask返回代碼2」 檢查日誌後,發現下面的錯誤。

java.lang.ClassCastException:org.apache.hadoop.io.Text不能轉換到org.apache.hadoop.hive.ql.io.orc.OrcSerde $ OrcSerdeRow

在此

任何人都可以請幫助問候?

回答

0

您的表定義缺少SerDe聲明,因此Hive使用文本作爲默認值。

使用STORED AS ORC,它是equivalent來顯式指定輸入格式,輸出格式和SerDe。

+0

它工作得很好。非常感謝。 – Pranav