如何在配置单元中找到列的最大值?

jc3wubiy  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(318)

我的代码:

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;

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

fd3cxomn

fd3cxomn1#

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支持按每个reducer对数据进行排序的sort。
“order by”和“sort by”的区别在于前者保证输出的总顺序,而后者只保证减速机中行的顺序。
如果有多个减速机,“排序方式”可能会给出部分排序的最终结果。
https://cwiki.apache.org/confluence/display/hive/languagemanual+sortby

2.

铸造 loan_amtint 限制
此serde将所有列视为string类型。
即使使用此serde创建具有非字符串列类型的表,describe表输出也将显示字符串列类型。
. 类型信息是从serde检索的。
要将表中的列转换为所需类型,可以在表上创建一个视图,该视图将转换为所需类型。
https://cwiki.apache.org/confluence/display/hive/csv+serde

相关问题