【发布时间】:2020-08-28 17:48:34
【问题描述】:
我正在尝试从 Hive 上的外部表中检索数据。我正在使用基于 Cloudera/quickstart 映像的 docker 容器来执行此操作,该映像是 Cloudera 的官方映像。
桌子:
create external table dev.tru_sprinklr_rpt_platform_inbound_case (
universal_message_id STRING COMMENT 'Id unico na mensagem',
inbound_message_date STRING COMMENT 'Data no formato Unix Timestamp',
message STRING COMMENT 'Mensagem escrita na Rede Social',
permalink STRING COMMENT 'URL que aponta para uma postagem específica na Rede Social',
social_network STRING COMMENT 'Nome da Rede Social',
associated_cases STRING COMMENT 'Id de mensagens associados ao caso (gerado automaticamente pela Sprinklr no periodo de 24 horas)',
from_user STRING COMMENT 'Usuario',
sentiment STRING COMMENT 'Sentimento',
assunto_gestor STRING COMMENT 'Categoria gerada na plataforma Sprinklr pelos atendentes de midia sociais com assunto do caso',
detalhamento STRING COMMENT 'Categoria gerada na plataforma Sprinklr pelos atendentes de midia sociais com detalhamento do caso',
motivo_engajamento STRING COMMENT 'Categoria gerada na plataforma Sprinklr pelos atendentes de midia sociais com motivo e engajamento do caso',
has_brand_responded STRING COMMENT 'Mensagem teve uma resposta',
sender_id STRING COMMENT 'Id do usuario que esta enviando a mensagem',
sender_name STRING COMMENT 'Login do usuario que esta enviando a mensagem',
sender_screenname STRING COMMENT 'Nome do usuario que esta enviando a mensagem',
sender_location STRING COMMENT 'Localizacao do usuario que esta enviando a mensagem',
sender_url_profile STRING COMMENT 'URL do perfil do usuario que esta enviando a mensagem',
sender_following STRING COMMENT 'Quantidade de seguintes do usuario que esta enviando a mensagem',
sender_followers STRING COMMENT 'Quantidade de seguidores do usuario que esta enviando a mensagem',
receiver_id STRING COMMENT 'Id do usuario que esta recebendo a mensagem',
receiver_name STRING COMMENT 'Nome do usuario que esta recebendo a mensagem'
) stored as orc
location '/user/next/dev/sprinklr/external'
tblproperties ("orc.compress"="ZLIB");
Hive 版本:Hive 1.1.0-cdh5.7.0
我正在使用 Spark 1.6(因为我正在与之合作的公司)将 orc 文件写入“位置”。该文件在那里并且具有正确的内容。我知道,因为我可以使用 Spark 读取 Dataframe 上的内容。
但是,当我使用简单查询(SELECT * FROM)时,结果是这样的:
$ hive -e "select * from dev.tru_sprinklr_rpt_platform_inbound_case"
2020-05-12 18:13:10,235 WARN [main] mapreduce.TableMapReduceUtil: The hbase-prefix-tree
module jar containing PrefixTreeCodec is not present. Continuing without it.
Logging initialized using configuration in file:/etc/hive/conf.dist/hive-log4j.properties
OK
Time taken: 1.134 seconds
WARN: The method class org.apache.commons.logging.impl.SLF4JLogFactory#release() was invoked.
WARN: Please see http://www.slf4j.org/codes.html#release for an explanation
如您所见,即使在 HDFS 的正确路径中使用 orc 文件(实际上是目录),也没有返回任何内容。
我尝试使用此命令,希望只是 Hive 需要更新元数据: MSCK 修复表 dev.tru_sprinklr_rpt_platform_inbound_case
但什么都没有改变!
我试图在创建表之前包含这一行,但是也没有任何改变! 添加 JAR /jars/hive-orc-2.2.0.jar;
我读过类似的问题,但没有任何回答者适合我。
有什么建议吗?
谢谢!
【问题讨论】:
标签: hive zlib orc external-tables