I believe Hive column names cant have '-' in them . From what I know this JSON 
serde uses column names as JSON expressions. This means that if you renamed the 
column name you would end up with a null value for the column. You might want 
to try a different json serde (for e.g. the one  Amazon uses in EMR examples 
allows the JSON expression for a column to be passed in as a  SERDE parameter)

thanks,
Shrikanth
On May 31, 2012, at 8:35 AM, Alex Barrera wrote:

> Hi there,
> 
> I'm looking for help with the following error: I keep receiving an error 
> 'Parse Error: line 40:4 cannot recognize input near '-' 'Platform' STRING 
> column type. ' 
> 
> It looks to be a problem with my JSON deserializer OR Hive not recognizing 
> the - in the field names. So far I've tried commenting it out with / and //, 
> and tried wrapping single and double quotes around the field name. Nothing 
> has worked so far. 
> 
> My code looks like this: 
> add jar s3://sa/hive-json-serde-0.3.jar;
> DROP TABLE IF EXISTS viewstream;
> CREATE EXTERNAL TABLE IF NOT EXISTS viewstream(
>      cl STRING,
>      pid STRING,
>      vp STRING,
>      ar STRING,
>      UArm STRING,
>      dc STRING,
>      host STRING,
>      Blocked STRING,
>      UA-Platform STRING,
>      UA-Browser STRING,
>      UA-Version STRING,
>      UA-Language STRING
> )
> 
> ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.JsonSerde'
>   LOCATION 'hdfs:///repo/viewstream/';
> 
> Anybody run into similar errors? I can't find anything on this problem 
> online, strangely enough. 
> 
> Thanks all,
> Alex

Reply via email to