【发布时间】:2017-01-25 16:05:47
【问题描述】:
我想使用 PIG 连接 3 个表,然后加载到 Hive 表中。在存储数据之前,我可以使用转储在屏幕中显示数据。我使用下面的命令来存储数据,它失败了。
store jnr_mas_ins INTO 'table_name' USING org.apache.hive.hcatalog.pig.HCatStorer();
错误是:
2017-01-25 10:58:48,487 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1002: Unable to store alias jnr_mas_ins
Details at logfile: /export/home/pig_1485359450881.log
我搜索了这个网站,有人建议使用以下命令:
store jnr_mas_ins INTO 'hdfs://fullpath' USING org.apache.hive.hcatalog.pig.HCatStorer();
001 : Error setting output information. Cause : NoSuchObjectException(message:default.hdfs://fullpath table not found)
Details at logfile: /export/home/pig_1485359450881.log
请您帮忙解决这个问题,在此先感谢 下面是我用来填充表格的脚本。
account_master_ALL = LOAD 'ACCT' USING org.apache.hive.hcatalog.pig.HCatLoader(); account_master_fil = 按 croft_source_sys_cd == ''ABC'' 过滤 account_master_ALL; account_master = foreach account_master_fil 生成acct_master_key,(trans_date为null?'-999':trans_date)为trans_date,(acct_data_1为null?'-999':acct_data_1)为acct_data_1,(acct_data_2为null?'-999':acct_data_2)为acct_data_2,(acct_data_3 为空?'-999':acct_data_3)作为acct_data_3,(acct_data_4 为空?'-999':acct_data_4)作为acct_data_4,(acct_data_5 为空?'-999':acct_data_5)作为acct_data_5,acct_m_ref_key,croft_source_sys_cd ; acct_detail_all = LOAD 'acct_detail_tb' 使用 org.apache.hive.hcatalog.pig.HCatLoader(); acct_detail = foreach acct_detail_all 生成 c_number、b_number、a_number、c_coded、a_type、c_digit、s_number、r_type、r_cd、s_qty、s_b_cost、trade_qty、t_cost、p_date、load_date; jnr_all = 加入 acct_detail by (a_number, b_number, c_coded, a_type, c_number, c_digit), account_master by (acct_data_1, trans_date, acct_data_2, acct_data_3, acct_data_4, acct_data_5); ins_master_all = LOAD 'ins_acct' 使用 org.apache.hive.hcatalog.pig.HCatLoader(); jnr_mas_ins_all = 加入 jnr_all by (acct_detail::s_number), ins_master_all by (acct_data_1); jnr_mas_ins = foreach jnr_mas_ins_all 生成 acct_master_key 作为 acct_master_key,ins_master_key 作为 ins_master_key,'ABC' 作为 code_dev,c_number 作为 c_number,b_number 作为 b_number,a_number 作为 src_a_number,c_coded 作为 c_coded,a_type 作为 a_type,c_digit 作为 c_digit,s_number 作为 s_number,r_type 作为 r_ , r_cd 作为 r_cd, s_qty 作为 s_qty, s_b_cost 作为 s_b_cost, trade_qty 作为 trade_qty, t_cost 作为 t_cost, p_date 作为 p_date, CurrentTime() 作为 load_date, 'PIG_USER' 作为 create_userid, CurrentTime() 作为 create_date, CurrentTime() 作为 f_date; 使用 org.apache.hive.hcatalog.pig.HCatStorer() 存储 jnr_mas_ins INTO 'tartet_table';
【问题讨论】:
-
发布你的整个 PIG 脚本
-
感谢 inquisitive_mind,我刚刚通过添加我的脚本更新了第一个流。请看一下。谢谢。
标签: hadoop hive apache-pig