【发布时间】:2015-02-14 08:27:44
【问题描述】:
我最近一直在 Hive 上的 PHD VM 上运行一些基本脚本。 以下大部分内容在我之前使用的 apache 发行版上运行良好,但现在在 PHD 版本上,where、sum、group by 或基本上任何操作都没有正确响应。但是,可以在下面的 select 命令的 o/p 中看到数据是可用的。 除了下面的第一个选择语句之外,我得到所有操作和查询的空值。
如果有人在他们的设置中遇到过这样的问题,请告诉我。
创建表格:
create external table ytd (video_id string, uploader string, age int, category string, length int, views int, rate float, ratings int, comments int, rid1 string, rid2 string, rid3 string, rid4 string, rid5 string, rid6 string, rid7 string, rid8 string, rid9 string, rid10 string, rid11 string, rid12 string, rid13 string, rid14 string, rid15 string, rid16 string, rid17 string, rid18 string, rid19 string, rid20 string) row format delimited fields terminated by '\n' stored as textfile location '/joker/ytd/crawl';
以下命令的输出: 从 ytd 限制 = 5 中选择 *; 6HNrBd4kKMg AcePuppers 790个新闻与政治75 501976 4.19 1183 3543 ejsaF9T-qL8 EqpOXWAAVRI khG6N2UGRWY tzRrqNGd_0o 5Ql-UeMBqDY UfaTpr4gVFo FQVeY0l7lzU 2YXpIlh5148 MhoyuDdqpDo ev17_KL1cU4 MaPiXE83L_c mh4ryAKDJXM MS3LcpGEK14 xLs3jASBZNk 86Y4G3__Vi4 vPZdQ6UX8p0 W-5PMs72S-E msAmWlzNhBE Gb2LOVbAgoU 67bOAasHv4I NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL _3FrOWdvsNw PricelessExperience 790旅行&景点82 459122 2.24 2028 90 V-qsXESnaWk Bl43yFLteho UaZWmloW-UK 6Y-uOKjcAvA lspMkHCHR4Y MA_aY3xTJWo d06xuriAFyA inAiKQLabsc 5S_-l8haEKs P2q5rRfGwG0 dGgZ6Uaiotk Qb7cVBvWxJQ 7ysw0q6jCn4 pXBCiBLWxGg jygqAAupvxQ 7N3pZhHXSmg nMOqSul6DOQ pnigNFLt52Q NticicE6dmc mtij0ez5gGw NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL ZQgVAD7x5Zo operation05 790分新闻与政治204 76850 4.36 400 1451 Rk8syX2b-ZQ vs7T4XEhg6k uK3isbd0YOQ S-py0ooWFFM vzVMQht96bM qPCjIXEu_tA 7b2JLENkflw bhm8ylJu79g Nuz3K__ipJ0 fVe4Ovu-NFG JgPkXrMdTTo GhUbMQMUSQk 4qCjvTPTtng Mi5dOtcF8eQ 30_bW6vux7A xh0b9WBp9jw hLCU6QRi9Pw B0gFx-XU5uo eHqaaLHZHoc cSbZmd-l8n8 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 6vbwQ34Lvks StaffGrillo 790新闻与政治307 218869 4.85 763 298 9uwcfXrXsW0 -yjN0pQ8Mgw XoxW2ANtOfE 4b7SXGrkR0c Z5-WoRYUVgs nWQT9w5rjMk jc_unBhZLZg ZCAUx9mk-I4 In5NsN9NXQ8 PF7_uct1qN4 -KspAAEbWBM 5UIoZIhv1t4 JF6xgrubtsM M3gBhLdJhbw F9I0hl_Eo4k kEGkbkhltGw b3FyIW2J2ek 9jps_FUI_LA 7w55tR_wrFs zj4N6PHNZ10 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL WUZ3sZT8BcA ntcoolfool 790新闻与政治54 209286 3.44 334 787 _ahlduhEXQY QtyBNKAeV6o xLs3jASBZNk 3E9hVdbWg-E 6HNrBd4kKMg ZQgVAD7x5Zo 5Ql-UeMBqDY ay3f_celUxU EqpOXWAAVRI tzRrqNGd_0o SJjPvyPzvog t9QxHtptvn0 C3PcWx3cgV8 FQVeY0l7lzU qsZmiGKkSLU 2YXpIlh5148 mh4ryAKDJXM qPCjIXEu_tA yUyp4t0j8Ow QONWDfQgSIk NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
尝试了其他 sql。 按类别从 ytd 组中选择类别 count(*); 按类别从 ytd 组中选择类别 count(video_id); 从 ytd 中选择不同的类别; 从 ytd 中选择 count(distinct(video_id));
解释另一个 sql 的计划。 解释 select count(*) from ytd where category='News & Politics';
好的 抽象语法树: (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME ytd))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTIONSTAR count))) (TOK_WHERE (= (TOK_TABLE_OR_COL category) 'News & Politics'))))
阶段依赖性: Stage-1 是根阶段 Stage-0 是根阶段
舞台计划: 阶段:第一阶段 地图缩减 别名 -> 映射运算符树: 年初至今 表扫描 别名: ytd 过滤运算符 谓词: expr:(类别='新闻与政治') 类型:布尔值 选择运算符 按运算符分组 聚合: 表达式:计数() 桶组:假 模式:哈希 输出列名:_col0 减少输出运算符 排序: 标签:-1 价值表达: 表达式:_col0 类型:大整数 减少运算符树: 按运算符分组 聚合: expr:计数(VALUE._col0) 桶组:假 模式:部分合并 输出列名:_col0 选择运算符 表达式: 表达式:_col0 类型:大整数 输出列名:_col0 文件输出运算符 压缩:假 全局表 ID:0 桌子: 输入格式:org.apache.hadoop.mapred.TextInputFormat 输出格式:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
阶段:Stage-0 获取运算符 限制:-1
【问题讨论】:
-
请显示错误输出。
-
@javadba "除了下面的第一个 select 语句之外,所有操作和查询都得到了空值。"没有错误。每次执行下面的sqls:select category,count() from ytd group by category;按类别从 ytd 组中选择类别 count(video_id);从 ytd 中选择不同的类别;从 ytd 中选择 count(distinct(video_id));我得到空输出,好像我正在获取的值不存在。例如:select count() from ytd where category='News & Politics';应该返回类别为 News & Politics 的所有行的计数,但我一直得到 null 作为 o/p
-
我为此创建了一个答案。