如何在Hive中找到最大列?

时间:2017-03-22 04:33:29

标签: hive max

我的代码:

add jar /home/edureka/Downloads/csv-serde-1.1.2.jar;

Create table loan(id int,loan_amt int,grade string)
row format serde 'com.bizo.hive.serde.csv.CSVSerde'
stored as textfile;

load data local inpath 'Desktop/LMS/Hive_Project/Loan Data.csv' into table loan;

select id,loan_amt,grade from loan
where grade="A"
sort by loan_amt desc
limit 5;

但我的结果是错误的。 我得到一些随机的值,这不是前五名

1 个答案:

答案 0 :(得分:0)

select    id,loan_amt as ,grade 
from      loan
where     grade="A"
order by  cast (loan_amt as int) desc
limit     5;

1。

ORDER BY(而不是SORT BY

  

排序方式与排序方式之间的差异
  Hive支持SORT BY,它对每个reducer的数据进行排序   “order by”和“sort by”之间的区别在于前者保证了输出中的总顺序   而后者只保证在减速器内排序   如果有多个减速器,“排序依据”可能会给出部分有序的最终结果。

     

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy

2

loan_amt投放到int

  

<强>限制
  此SerDe将所有列视为String类型   即使使用此SerDe创建具有非字符串列类型的表,DESCRIBE TABLE输出也会显示字符串列类型。
  。从SerDe检索类型信息   要将列转换为表中所需的类型,可以在将CAST执行到所需类型的表上创建一个视图。

     

https://cwiki.apache.org/confluence/display/Hive/CSV+Serde