以orc格式在配置单元中创建表时出错。下面是create table脚本。
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
在这方面谁能帮忙?
1条答案
按热度按时间o75abkj41#
表定义缺少serde声明,因此配置单元使用文本作为默认值。
使用
STORED AS ORC
,相当于显式指定输入格式、输出格式和serde。