2015-03-31 116 views
0

我有两个分号分隔的输入文件。我将这些文件加载​​到两个表中。两张表都包含有关书籍的信息。我加入了ISBN字段的两个表格。为了创建这些表我用下面的查询跳过头和读分号分隔的文件: - 现在没有通过Hive查询获得所需的输出

Create table books (ISBN STRING,BookTitle STRING,BookAuthor STRING,YearOfPublication STRING,Publisher STRING,ImageURLS STRING,ImageURLM STRING,ImageURLL STRING) row format delimited fields terminated by '\;' lines terminated by '\n' tblproperties ("skip.header.line.count"="1"); 

当我尝试下面的查询,但我没有得到期望的输出: -

SELECT a.BookRating, COUNT(BookTitle) 
FROM Books b 
JOIN Rating a 
on (b.ISBN = a.ISBN) 
WHERE b.YearOfPublication = 2002 
GROUP BY a.BookRating; 

我没有得到任何东西。查询完全运行后,它仅在终端上显示OK。请让我知道可以做些什么。提前致谢。

回答

0

您的DDL脚本不正确。

您提到

以'\;'结尾的行格式定界字段

但实际上它应该是通过终止

行格式分隔的字段“;”

试试这个,让我知道

+0

苏尼尔你好,我测试你之前提到的方式,但它不能正常工作。如果我这样做,我会得到一个错误。这就是我用'/'的原因。请让我知道如果我在这里错了。 – 2015-03-31 15:14:15

0

yearofpublication介于一个字符串,所以你需要将其更改为

WHERE b.YearOfPublication = '2002' 
+0

嗨,你会尝试,让你知道。谢谢 – 2015-03-31 16:18:55

+0

嗨我试过了,但也没有奏效。在运行查询之后,我只是得到OK和Time Taken,没有别的。请建议。 – 2015-03-31 16:57:06