在Hive中,当我们执行查询(如:)时 select * from employee,我们在输出中没有得到任何列名(比如我们在RDBMS SQL中获得的名称,年龄,工资),我们只获取值.
在执行任何查询时,有没有办法让列名与输出一起显示?
我想获取Hive中表格的第一个四分位数的摘要数据.以下是获取每个四分位数中的最大视图数的查询:
SELECT NTILE(4) OVER (ORDER BY total_views) AS quartile, MAX(total_views)
FROM view_data
GROUP BY quartile
ORDER BY quartile;
Run Code Online (Sandbox Code Playgroud)
此查询是获取第一个四分位数中所有人的名称:
SELECT name, NTILE(4) OVER (ORDER BY total_views) AS quartile
FROM view_data
WHERE quartile = 1
Run Code Online (Sandbox Code Playgroud)
我为这两个查询都收到此错误:
Invalid table alias or column reference 'quartile'
Run Code Online (Sandbox Code Playgroud)
如何ntile在where条款或group by条款中引用结果?
我正在使用Python和tinys3将文件写入S3,但它无法正常工作.这是我的代码:
import tinys3
conn = tinys3.Connection('xxxxxxx','xxxxxxxx',tls=True)
f = open('testing_s3.txt','rb')
print conn.upload('testing_data/testing_s3.txt',f,'testing-bucket')
print conn.get('testing_data/testing_s3.txt','testing-bucket')
Run Code Online (Sandbox Code Playgroud)
这给出了输出:
<Response [301]>
<Response [301]>
Run Code Online (Sandbox Code Playgroud)
当我尝试指定端点时,我得到:
requests.exceptions.HTTPError: 403 Client Error: Forbidden
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?
编辑:当我尝试使用boto时,它可以工作,因此问题不在访问密钥或密钥中.
我正在将数据迁移到Hive 1.2,我意识到默认情况下,我不再被允许使用保留字作为列名。如果要使用保留字,则需要显式设置以下设置:
hive.support.sql11.reserved.keywords=false
Run Code Online (Sandbox Code Playgroud)
我的问题是,更改此默认值是否会导致任何意外的问题?更改之前我应该注意什么问题?
顺便说一下,此更改记录在此票证中:https : //issues.apache.org/jira/browse/HIVE-6617