在Spark配置hive的hive.metastore.uris
在spark的conf/hive-site.xml中配置1
2
3
4<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop3:9083</value>
</property>
hive.metastore.uris可以看cloudera manager的群集->Hive->实例:
Hive Metastore Server对应的服务器地址。
秒杀一切udf的reflect函数
Hive collect_set,concat_ws
collect_set 是 Hive 内置的一个聚合函数, 它返回一个消除了重复元素的对象集合, 其返回值类型是 array 。1
select av_seq, concat_ws(',', collect_set(cp_seq)) from dw.smbrandcp group by av_seq;
Hive获取array数组长度
使用size(array)方法1
select size(split(cook_ids)) from user_cook_recommed
java.io.IOException: Failed to run job : Application rejected by queue placement policy
有可能是没有使用正确的用户去执行hive命令,比如本该用hdfs用户的,但是却用root用户执行了。
为hive -e设置mapper数量和MapReduce的name
1 | hive -e "set mapred.reduce.tasks=1; $insert_sql " |
使用sqoop创建hive表
1 | /bin/sqoop import -D mapred.job.name=sqoop_import_ods_yqc_earn_record --connect jdbc:oracle:thin:@server1:1521:test --username 'root' --password '123' --table EARN_RECORD --hive-import -m 1 --hive-drop-import-delims --hive-table ods.earn_record --hive-overwrite --where ' rownum < 1 ' --columns 'ID,AD_TASK_ID,USER_ID,EARN_XD,CREATE_TIME,PV,UV,SCENE_PV,SCENE_UV,CLICKS,SCENE_ID,AD_POSITION_ID,PUBLISHER_ID' --map-column-hive PV=int,UV=int,SCENE_PV=int,SCENE_UV=int,CLICKS=int,ID=string,AD_TASK_ID=string,EARN_XD=string,SCENE_ID=string,AD_POSITION_ID=string,PUBLISHER_ID=string |