首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >星火重新创建我的orc存储表后,单元格无法访问表

星火重新创建我的orc存储表后,单元格无法访问表
EN

Stack Overflow用户
提问于 2022-05-09 16:08:13
回答 1查看 35关注 0票数 0

当我使用show create table mydb.mytable显示的命令重新创建星火中的表时,就不能使用Hive中的表了。这种情况只发生在几个表中,我重新创建的其他表仍然可以从hive访问。

我在星火表中添加注释元数据。我是通过重新创建一张装好的桌子来做的。我首先获得spark命令来创建一个表:

代码语言:javascript
复制
spark.sql('show create table mydb.mytable')

它将返回一个create命令,如下所示:

代码语言:javascript
复制
"CREATE TABLE `raw_db`.`mytable` (`municipio` STRING )
USING orc
OPTIONS (`serialization.format` '1',
         'hdfs://xxxx/corporativo/raw_db/mytable')"

我解析返回的SQL并在其中插入注释,但是当我重新创建它时,spark仍然可以正确地看到表,但是它在Hive中失败了。下面是运行命令describe raw_db.mytable时Hive显示的内容

代码语言:javascript
复制
    col_name    data_type   comment
    col     array<string>   from deserializer

以下是表的完整架构,其中娱乐失败:

代码语言:javascript
复制
CREATE TABLE `sbx_ppppp`.`mytable` (
  `id_conct_cdstrl` DECIMAL(19,0), 
  `dt_cria` TIMESTAMP, 
  `id_usu_cria` STRING, 
  `dt_ult_atualz` TIMESTAMP, 
  `id_usu_ult_atualz` STRING, 
  `nu_vrs` DECIMAL(19,0), 
  `dt_ini_vignc` TIMESTAMP, 
  `dt_fim_vignc` TIMESTAMP, 
  `nu_dia_prz_vignc` DECIMAL(4,0), 
  `in_escp_cnslt_altrd` STRING, 
  `id_fnt_conct_cdstrl` DECIMAL(2,0), 
  `id_avalc_conct_cdstrl_dlibr` DECIMAL(2,0), 
  `id_avalc_conct_cdstrl_autmtc` DECIMAL(2,0), 
  `id_avalc_conct_cdstrl_prop` DECIMAL(2,0), 
  `nu_rlat` DECIMAL(19,0), 
  `id_sit_conct_cdstrl` DECIMAL(2,0), 
  `id_solic_anls_conct_cdstrl` DECIMAL(19,0), 
  `id_anlst_rspvl` DECIMAL(19,0), 
  `id_grnt_rspvl` DECIMAL(19,0), 
  `id_doc_lst` DECIMAL(19,0), 
  `id_dlibr` DECIMAL(19,0), 
  `id_pondrc_escp` DECIMAL(2,0), 
  `qt_entdd_nao_escp` DECIMAL(6,0), 
  `vl_pontc_calc_nao_escp` DECIMAL(9,0), 
  `ds_fnaldd` STRING, 
  `te_pre_anls_conct_cdstrl` STRING)
USING orc
OPTIONS (
  `serialization.format` '1',
  path 'hdfs://xxxx/corporativo/raw_db/mytable'
)

在重新创建后,我无法注意到与它工作的表和从Hive中看不到模式的表有什么不同。

如何解决这几个表的问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-10 20:53:39

问题是有些表格的评论太大了。任何具有注释超过1000个字节的列的表都可以在Spark中工作,但是当从Hive访问时有一个损坏的模式。

我用更多1000个字节截断了注释,一切都很好。

请注意,此限制相对于字符串中的字节数。因此,如果在注释中使用UTF-8编码字符串,则任何重音字符将至少使用2个字节。

这个限制不适用于表注释,只适用于列。

我仍然不知道评论的大小是在哪里配置的。在我的开发环境中,一切都很好,但是在生产中失败了。

顺便说一句,在我的Spark版本中,show create table命令不显示注释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72175025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档