Hi All,

I am trying to create a table with a single column as below in hive-2.1.0,

CREATE TABLE sample( data
struct<`array`:array<struct<hitNumber:bigint,time:bigint,hour:bigint,minute:bigint,isSecure:boolean,isInteraction:boolean,isEntrance:boolean,isExit:boolean,referer:binary,page:struct<pagePath:binary,hostname:binary,pageTitle:binary,searchKeyword:binary,searchCategory:binary>,transaction:struct<transactionId:binary,transactionRevenue:bigint,transactionTax:bigint,transactionShipping:bigint,affiliation:binary,currencyCode:binary,localTransactionRevenue:bigint,localTransactionTax:bigint,localTransactionShipping:bigint,transactionCoupon:binary>,item:struct<transactionId:binary,productName:binary,productCategory:binary,productSku:binary,itemQuantity:bigint,itemRevenue:bigint,currencyCode:binary,localItemRevenue:bigint>,contentInfo:struct<contentDescription:binary>,appInfo:struct<name:binary,version:binary,id:binary,installerId:binary,appInstallerId:binary,appName:binary,appVersion:binary,appId:binary,screenName:binary,landingScreenName:binary,exitScreenName:binary,screenDepth:binary>,exceptionInfo:struct<description:binary,isFatal:boolean>,eventInfo:struct<eventCategory:binary,eventAction:binary,eventLabel:binary,eventValue:bigint>,product:struct<`array`:array<struct<productSKU:binary,v2ProductName:binary,v2ProductCategory:binary,productVariant:binary,productBrand:binary,productRevenue:bigint,localProductRevenue:bigint,productPrice:bigint,localProductPrice:bigint,productQuantity:bigint,productRefundAmount:bigint,localProductRefundAmount:bigint,isImpression:boolean,customDimensions:struct<`array`:array<struct<index:bigint,value:binary>>>,customMetrics:struct<`array`:array<struct<index:bigint,value:bigint>>>,productListName:binary,productListPosition:bigint>>>,promotion:struct<`array`:array<struct<promoId:binary,promoName:binary,promoCreative:binary,promoPosition:binary>>>,promotionActionInfo:struct<promoIsView:boolean,promoIsClick:boolean>,refund:struct<refundAmount:bigint,localRefundAmount:bigint>,eCommerceAction:struct<action_type:binary,step:bigint,option:binary>,experiment:struct<`array`:array<struct<experimentId:binary,experimentVariant:binary>>>,publisher:struct<dfpClicks:bigint,dfpImpressions:bigint,dfpMatchedQueries:bigint,dfpMeasurableImpressions:bigint,dfpQueries:bigint,dfpRevenueCpm:bigint,dfpRevenueCpc:bigint,dfpViewableImpressions:bigint,dfpPagesViewed:bigint,adsenseBackfillDfpClicks:bigint,adsenseBackfillDfpImpressions:bigint,adsenseBackfillDfpMatchedQueries:bigint,adsenseBackfillDfpMeasurableImpressions:bigint,adsenseBackfillDfpQueries:bigint,adsenseBackfillDfpRevenueCpm:bigint,adsenseBackfillDfpRevenueCpc:bigint,adsenseBackfillDfpViewableImpressions:bigint,adsenseBackfillDfpPagesViewed:bigint,adxBackfillDfpClicks:bigint,adxBackfillDfpImpressions:bigint,adxBackfillDfpMatchedQueries:bigint,adxBackfillDfpMeasurableImpressions:bigint,adxBackfillDfpQueries:bigint,adxBackfillDfpRevenueCpm:bigint,adxBackfillDfpRevenueCpc:bigint,adxBackfillDfpViewableImpressions:bigint,adxBackfillDfpPagesViewed:bigint,adxClicks:bigint,adxImpressions:bigint,adxMatchedQueries:bigint,adxMeasurableImpressions:bigint,adxQueries:bigint,adxRevenue:bigint,adxViewableImpressions:bigint,adxPagesViewed:bigint,adsViewed:bigint,adsUnitsViewed:bigint,adsUnitsMatched:bigint,viewableAdsViewed:bigint,measurableAdsViewed:bigint,adsPagesViewed:bigint,adsClicked:bigint,adsRevenue:bigint,dfpAdGroup:binary,dfpAdUnits:binary,dfpNetworkId:binary>,customVariables:struct<`array`:array<struct<index:bigint,customVarName:binary,customVarValue:binary>>>,customDimensions:struct<`array`:array<struct<index:bigint,value:binary>>>,customMetrics:struct<`array`:array<struct<index:bigint,value:bigint>>>,type:binary,social:struct<socialInteractionNetwork:binary,socialInteractionAction:binary>>>>)
STORED AS parquet;

But hive throws, FAILED: Execution Error, return code 1 from
org.apache.hadoop.hive.ql.exec.DDLTask.
InvalidObjectException(message:Invalid column type name is too long:
struct<.......

I understand the issue, as i have fixed the similar problem in hive 1.2.0
by increasing the TYPE_NAME col size in COLUMNS_V2 table, but the same
doesnt work in hive-2.1.0.
Additionally i have also inserted the same column into the COLUMNS_V2 mysql
metastore table and found out the insert was successful.

Would like to know if there is any workaround, any help is highly
appreciated.

Regards,
Satyajit.

Reply via email to