我最近在Hive上的PHD VM上运行了一些基本脚本。 下面的大部分内容在我之前使用的apache弃用上运行良好,但现在在PHD版本中没有任何地方,总和,分组或基本上任何操作都正确响应。但是数据可用,可以在下面的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';
以下命令的输出: select * from ytd limit = 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 _3FrOWdvsNw PricelessExperience 790 Travel&放置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 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 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 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
其他sqls尝试过。 从类别中选择类别,从ytd组中计数(*); 从类别中选择ytd group的类别,count(video_id); 从ytd中选择不同的类别; 从ytd中选择count(distinct(video_id));
解释另一个sql的计划。 从ytd解释选择计数(*),其中category =' News&政治&#39 ;;
行 摘要语法树: (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' ))))
阶段依赖: 阶段1是根阶段 阶段0是根阶段
阶段计划: 阶段:第一阶段 地图减少 别名 - >地图运算符树: 年初至今 表扫描 别名:ytd 过滤运算符 谓语: expr :( category =' News& Politics') type:布尔值 选择运营商 按运营商分组 汇总: expr:count() bucketGroup:false 模式:哈希 outputColumnNames:_col0 减少输出操作员 排序: 标签:-1 值表达式: expr:_col0 类型:bigint 减少运算符树: 按运营商分组 汇总: expr:count(VALUE._col0) bucketGroup:false 模式:mergepartial outputColumnNames:_col0 选择运营商 表情: expr:_col0 类型:bigint outputColumnNames:_col0 文件输出操作员 压缩:false GlobalTableId:0 表: 输入格式:org.apache.hadoop.mapred.TextInputFormat 输出格式:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
阶段:阶段0 获取运算符 限制:-1
答案 0 :(得分:0)
看到空值的可能原因是磁盘文件中的数据类型与外部表的DDL不匹配。
试试这个:
select category from ytd limit 10;
您可能会看到所有null - 这是所描述问题的症状。我怀疑外部文件和表定义之间的数据类型不匹配。在那种情况下,选择*仍然可以使用,但它是海市蜃楼。您需要选择单个列以验证ddl是否正确。