蜂巢:为什么CTAS无法读取文件而选择查询却可以

时间:2018-09-03 07:10:46

标签: java hadoop hiveql hive-udf hive-query

我已将文件放在/hadoop/yarn/local/usercache/root/test_abspath上,并希望使用UDF读取第一行。 当我使用select test('ABCD','ABCD');运行它时,我可以读取文件,但是当我使用Create table as test_tb select test(name,'ABCD') from another_table尝试它时,它失败了。在第二种情况下,f1.exist() was true但是f1.canRead() was false我尝试使用chmod 777的changin读写许可,但是没有用。

读取文件的Java代码如下:

public class config {
  public static final String confFilePath = "/hadoop/yarn/local/usercache/root/test_file
  public static void init(){    
        BufferedReader br;
       try {    
            File f1 = new File(confFilePath);
            if (f1.exists())
            {   if (f1.canRead()){

                br = new BufferedReader( new FileReader( confFilePath ));
                String line;
                line = br.readLine();
                str = line;
                logger.info("inside init");
                }
                else{
                    str = "can't read";
                }
            }

如果使用select test('ABCD','ACBD'),则成功读取test_file的第一行;如果使用Create table as test_tb select test(name,'ABCD') from another_table,则返回can't read字符串。

编辑:如果这是关于添加serde.jar的,那么请重新命名我以更正要下载的jar。 HDP沙盒版本2.6.5

0 个答案:

没有答案