On Mon, Oct 25, 2010 at 1:42 PM, lei liu <liulei...@gmail.com> wrote:
> Hi Edward Capriolo,
> Thank you for your replay.
>
> I use JDBC to run "dfs -lsr hdfs://hdpnn:9000/group/hive/" command , if
> there is the directory in HDFS, the JDBC don't throw Exception, if there is
> not the directory in HDFS, the JDBC will throw Exception. Could you tell I
> can use the way to judge whether the directory is in HDFS?
>
>
> Thanks.
>
> 2010/10/25 Edward Capriolo <edlinuxg...@gmail.com>
>>
>> On Mon, Oct 25, 2010 at 9:04 AM, lei liu <liulei...@gmail.com> wrote:
>> > I use JDBC to run "dfs -lsr hdfs://hdpnn:9000/group/hive/" command, but
>> > ResultSet don't return value,  the code like below:
>> >
>> >           Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");
>> >             hiveConnection =
>> > DriverManager.getConnection("jdbc:hive://10.232.11.53:10000/default" ,
>> > "root", "root");
>> >             statement = hiveConnection.createStatement();
>> >             String sql = "dfs -mkdir
>> > hdfs://hdpnn:9000//group/tbprofile/mianfeng/scratch/test/001/ ";
>> >
>> >             ResultSet result = statement.executeQuery(sql); //the
>> > ResultSet
>> > don't return any value.
>> >             while(result.next()) {
>> >
>> >                 System.out.println("day_id =" + result.getString(1)
>> > );//the
>> >             }
>> >
>> >             statement.execute("set remove.scratch.dir=ture");
>> >             statement.close();
>> >
>> >
>> >  I run the command in CLI, there is output content,  the content like
>> > below
>> > :
>> >  drwxr-x---   - mianfeng cug-tbprofile          0 2010-10-25 20:55
>> > /group/tbprofile/mianfeng/scratch/test/001
>> >
>> >
>> >
>>
>> dfs and ! statements are handled specially in the CLI. They are not
>> run through the Query Processor and do not produce a result set.
>
>

You could suggest possible extensions to hive language to deal with
these type of things.
>From what you are sounds like the existence of a directory causes an
exception to be thrown. You could trap the exeption using try catch.

One other idea comes to mind. Hive has a duel "virtual table" that
allows you do do things like
select 1+2 from duel. You could design a UDF that tests for existence of a file.

select directoryExists("/user/bla") from duel, then use this in your workflow.

Interesting idea. :) If you do not make a directoryExists udf, i might :)

Reply via email to