You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@oozie.apache.org by yo...@bt.com on 2016/06/22 16:56:02 UTC
Create table with parameterized location
Hello,
I've tried something like the following
set rootpath = 'hdfs_path';
DROP TABLE mytable;
CREATE [EXTERNAL] TABLE mytable (
Dim1 STRING,
Dim2 STRING,
Dim3 STRING )
LOCATION ${hiveconf:rootpath};
I get this error:
FAILED: ParseException line 1:126 mismatched input '<EOF>' expecting StringLiteral near 'LOCATION' in table location specification
I am using Hive 1.1.0 with Cloudera 5.4.8.
Does anyone have an idea how to solve this?
All the best,
Yonathan
RE: Create table with parameterized location
Posted by yo...@bt.com.
Strangely that works through HUE, but not via the shell (hive -e). It also doesn't work via my script file, which is what I really want.
I can take it from here, as I now know it's possible in my version/setup :). Thank you very much for the input.
Yonathan Maalo
-----Original Message-----
From: Per Ullberg [mailto:per.ullberg@klarna.com]
Sent: 23 June 2016 09:33
To: user@oozie.apache.org
Subject: Re: Create table with parameterized location
This works for me:
> SET rootpath=/user/per.ullberg/foo;
hive>
> DROP TABLE bar;
OK
Time taken: 0.119 seconds
hive>
> CREATE EXTERNAL TABLE bar (
> Dim1 STRING,
> Dim2 STRING,
> Dim3 STRING )
> LOCATION '${hiveconf:rootpath}';
OK
Time taken: 0.052 seconds
hive>
> SELECT * FROM bar;
OK
foo bar baz NULL NULL
Time taken: 0.058 seconds, Fetched: 1 row(s)
hive>
Guess you're getting the ' in the wrong places.
regards
/Pelle
On Thu, Jun 23, 2016 at 10:17 AM, <yo...@bt.com> wrote:
> Thank you for the response. The variable is set according to 'set;'.
> I've tried your suggestion prior to posting, I've also tried removing
> the single quotes in the value and then tried putting
> ${hiveconf:rootpath} inside quotes i.e. '${hiveconf:rootpath} ' and
> without quotes. Whenever I put ${hiveconf:rootpath} inside quotes, the error changes to:
>
> FAILED: IllegalArgumentException Can not create a Path from an empty
> string
>
> Cheers,
>
> Yonathan Maalo
> BT Technology, Service & Operations
> Mob: 07483981150
> Email: yonathan.maalo@bt.com
>
>
> -----Original Message-----
> From: Per Ullberg [mailto:per.ullberg@klarna.com]
> Sent: 22 June 2016 18:49
> To: user@oozie.apache.org
> Subject: Re: Create table with parameterized location
>
> Try to skip the spaces when doing the set.
>
> You can execute 'set;' to verify that rootpath is set as expected.
>
> /Pelle
>
> On Wednesday, June 22, 2016, <yo...@bt.com> wrote:
>
> > Hello,
> > I've tried something like the following
> >
> > set rootpath = 'hdfs_path';
> > DROP TABLE mytable;
> > CREATE [EXTERNAL] TABLE mytable (
> > Dim1 STRING,
> > Dim2 STRING,
> > Dim3 STRING )
> > LOCATION ${hiveconf:rootpath};
> >
> > I get this error:
> >
> >
> > FAILED: ParseException line 1:126 mismatched input '<EOF>' expecting
> > StringLiteral near 'LOCATION' in table location specification
> >
> > I am using Hive 1.1.0 with Cloudera 5.4.8.
> >
> > Does anyone have an idea how to solve this?
> >
> > All the best,
> >
> > Yonathan
> >
> >
>
> --
>
> *Per Ullberg*
> Tech Lead
> Odin - Uppsala
>
> Klarna AB
> Sveavägen 46, 111 34 Stockholm
> Tel: +46 8 120 120 00
> Reg no: 556737-0431
> klarna.com
>
--
*Per Ullberg*
Tech Lead
Odin - Uppsala
Klarna AB
Sveavägen 46, 111 34 Stockholm
Tel: +46 8 120 120 00
Reg no: 556737-0431
klarna.com
Re: Create table with parameterized location
Posted by Per Ullberg <pe...@klarna.com>.
This works for me:
> SET rootpath=/user/per.ullberg/foo;
hive>
> DROP TABLE bar;
OK
Time taken: 0.119 seconds
hive>
> CREATE EXTERNAL TABLE bar (
> Dim1 STRING,
> Dim2 STRING,
> Dim3 STRING )
> LOCATION '${hiveconf:rootpath}';
OK
Time taken: 0.052 seconds
hive>
> SELECT * FROM bar;
OK
foo bar baz NULL NULL
Time taken: 0.058 seconds, Fetched: 1 row(s)
hive>
Guess you're getting the ' in the wrong places.
regards
/Pelle
On Thu, Jun 23, 2016 at 10:17 AM, <yo...@bt.com> wrote:
> Thank you for the response. The variable is set according to 'set;'. I've
> tried your suggestion prior to posting, I've also tried removing the single
> quotes in the value and then tried putting ${hiveconf:rootpath} inside
> quotes i.e. '${hiveconf:rootpath} ' and without quotes. Whenever I put
> ${hiveconf:rootpath} inside quotes, the error changes to:
>
> FAILED: IllegalArgumentException Can not create a Path from an empty string
>
> Cheers,
>
> Yonathan Maalo
> BT Technology, Service & Operations
> Mob: 07483981150
> Email: yonathan.maalo@bt.com
>
>
> -----Original Message-----
> From: Per Ullberg [mailto:per.ullberg@klarna.com]
> Sent: 22 June 2016 18:49
> To: user@oozie.apache.org
> Subject: Re: Create table with parameterized location
>
> Try to skip the spaces when doing the set.
>
> You can execute 'set;' to verify that rootpath is set as expected.
>
> /Pelle
>
> On Wednesday, June 22, 2016, <yo...@bt.com> wrote:
>
> > Hello,
> > I've tried something like the following
> >
> > set rootpath = 'hdfs_path';
> > DROP TABLE mytable;
> > CREATE [EXTERNAL] TABLE mytable (
> > Dim1 STRING,
> > Dim2 STRING,
> > Dim3 STRING )
> > LOCATION ${hiveconf:rootpath};
> >
> > I get this error:
> >
> >
> > FAILED: ParseException line 1:126 mismatched input '<EOF>' expecting
> > StringLiteral near 'LOCATION' in table location specification
> >
> > I am using Hive 1.1.0 with Cloudera 5.4.8.
> >
> > Does anyone have an idea how to solve this?
> >
> > All the best,
> >
> > Yonathan
> >
> >
>
> --
>
> *Per Ullberg*
> Tech Lead
> Odin - Uppsala
>
> Klarna AB
> Sveavägen 46, 111 34 Stockholm
> Tel: +46 8 120 120 00
> Reg no: 556737-0431
> klarna.com
>
--
*Per Ullberg*
Tech Lead
Odin - Uppsala
Klarna AB
Sveavägen 46, 111 34 Stockholm
Tel: +46 8 120 120 00
Reg no: 556737-0431
klarna.com
RE: Create table with parameterized location
Posted by yo...@bt.com.
Thank you for the response. The variable is set according to 'set;'. I've tried your suggestion prior to posting, I've also tried removing the single quotes in the value and then tried putting ${hiveconf:rootpath} inside quotes i.e. '${hiveconf:rootpath} ' and without quotes. Whenever I put ${hiveconf:rootpath} inside quotes, the error changes to:
FAILED: IllegalArgumentException Can not create a Path from an empty string
Cheers,
Yonathan Maalo
BT Technology, Service & Operations
Mob: 07483981150
Email: yonathan.maalo@bt.com
-----Original Message-----
From: Per Ullberg [mailto:per.ullberg@klarna.com]
Sent: 22 June 2016 18:49
To: user@oozie.apache.org
Subject: Re: Create table with parameterized location
Try to skip the spaces when doing the set.
You can execute 'set;' to verify that rootpath is set as expected.
/Pelle
On Wednesday, June 22, 2016, <yo...@bt.com> wrote:
> Hello,
> I've tried something like the following
>
> set rootpath = 'hdfs_path';
> DROP TABLE mytable;
> CREATE [EXTERNAL] TABLE mytable (
> Dim1 STRING,
> Dim2 STRING,
> Dim3 STRING )
> LOCATION ${hiveconf:rootpath};
>
> I get this error:
>
>
> FAILED: ParseException line 1:126 mismatched input '<EOF>' expecting
> StringLiteral near 'LOCATION' in table location specification
>
> I am using Hive 1.1.0 with Cloudera 5.4.8.
>
> Does anyone have an idea how to solve this?
>
> All the best,
>
> Yonathan
>
>
--
*Per Ullberg*
Tech Lead
Odin - Uppsala
Klarna AB
Sveavägen 46, 111 34 Stockholm
Tel: +46 8 120 120 00
Reg no: 556737-0431
klarna.com
Re: Create table with parameterized location
Posted by Per Ullberg <pe...@klarna.com>.
Try to skip the spaces when doing the set.
You can execute 'set;' to verify that rootpath is set as expected.
/Pelle
On Wednesday, June 22, 2016, <yo...@bt.com> wrote:
> Hello,
> I've tried something like the following
>
> set rootpath = 'hdfs_path';
> DROP TABLE mytable;
> CREATE [EXTERNAL] TABLE mytable (
> Dim1 STRING,
> Dim2 STRING,
> Dim3 STRING )
> LOCATION ${hiveconf:rootpath};
>
> I get this error:
>
>
> FAILED: ParseException line 1:126 mismatched input '<EOF>' expecting
> StringLiteral near 'LOCATION' in table location specification
>
> I am using Hive 1.1.0 with Cloudera 5.4.8.
>
> Does anyone have an idea how to solve this?
>
> All the best,
>
> Yonathan
>
>
--
*Per Ullberg*
Tech Lead
Odin - Uppsala
Klarna AB
Sveavägen 46, 111 34 Stockholm
Tel: +46 8 120 120 00
Reg no: 556737-0431
klarna.com