HQL问题记录
问题11
**UDTF使用方法**
1.直接放到select后面
2.一种和lateral view一起使用
用法
1.直接 select 中使用 select function(value) as (c1,c2) from table;
2.不可以添加其他字段使用:select a, function(value) as (col1,col2) from table
3.不可以嵌套调用:select function(function(value)) from table;
4.不可以和group by / cluster by / distribute by / sort by 一起使用:select function(value) as (c1,c2) from table group by c1, c2;
5.和 lateral view 一起使用:select table1.field, table2.field from table1 lateral view function(value) table2 as c1, c2;
问题2
调用分布式拷贝 distcp
指令时如果遇到数据源不存在,可以试试 在数据库名后面加上 .db
试试,亲测有效。
问题3
Tables not in metastore: tabelname
问题描述
项目中存在用 Hive Cli
和 Spark SQL
同时操作 Hive
的情况,当使用 Spark SQL
向 Hive
中建表建库之后,如果在 Hive Cli
中去操作这个 数据,会发现报这个错;当你使用 msck repair table tablename;
时,发现没有用,show tables;
也看不到这张表,但HDFS
上确是存在这个数据的
解决办法
通过Hive Cli
去 create table
,表名和表结构需要和 目标表保持一致,然后在 msck repair table tablename;
就可以修复元数据;
参考链接:https://blog.youkuaiyun.com/wf1982/article/details/7623708 ↩︎