当前位置: 首页 > 知识库问答 >
问题:

Hive 元存储与 alluxio 存储在镶木地板数据类型问题

景宏朗
2023-03-14

我使用prestodb和hive metastore作为模式存储,使用alluxio缓存作为数据的外部存储。alluxio和hive模式中使用的存储格式是PARQUET。同时使用配置单元目录从presto检索时间戳字段。我会跟踪错误。

列 utdate 声明为类型时间戳,但 Parquet 文件将列声明为 INT64 类型

数据集的架构为

创建表测试( utcdate timestamp ) WITH ( format='PARQUIET', external_location='alluxio://path-toserver/directory-path-to-parquet' )

此问题是从prestodb v0.221升级到v0.226版本后产生的。

共有2个答案

酆华皓
2023-03-14

不清楚你在问什么,所以我假设问题是:如何读取数据。

在. 226版本中,没有可用于读取数据的开关或配置更改。因此,你目前有两个选择:

    < li >降级到0.221 < li >升级到Presto 324
嵇光临
2023-03-14

我在保存镶木地板时使用它来解决时间戳问题。

pyarrow.parquet.write_table(self.arrow_table,file_name,use_deprecated_int96_timestamps=True)

presto和spark使用int96时间戳值以纳秒为单位存储时间戳。pyarrow表的默认时间戳格式是int64,而presto将int64视为bigint数据类型。如果我们在pyarrow中使用不推荐的timestamp int96版本,我们将获得presto兼容格式的时间戳值。

 类似资料:
  • 我一直在阅读有关此主题的一些问题以及几个论坛,并且在所有这些论坛中,他们似乎都提到从Spark中产生的每个. parket文件应该是64MB或1GB大小,但仍然无法让我想到哪些案例场景属于每个这些文件大小以及除了HDFS将它们拆分为64MB块之外的原因。 我当前的测试场景如下。 我目前每天处理2.5GB到3GB的数据,这些数据每年将被拆分并保存到每日存储桶中。n等于4或48的原因只是为了测试,因为

  • 我有一个存储在中,我也有一个方法来验证令牌是否正确,正如您在这段代码中看到的: 如果令牌我将返回null,否则继续验证。 有两个问题我不能理解: 为什么我刷新页面时丢失了本地存储的令牌 为什么返回false当是时,第一个console.log返回未定义的,但我的方法继续。

  • 问题内容: 我需要从AWS S3读取实木复合地板数据。如果我为此使用aws sdk,则可以得到如下输入流: 但是apache木地板阅读器仅使用本地文件,如下所示: 所以我不知道如何解析实木复合地板文件的输入流。例如,对于csv文件,存在使用inputstream的CSVParser。 我知道使用Spark实现此目标的解决方案。像这样: 但是我不能使用火花。 谁能告诉我从s3读取镶木地板数据的任何解

  • 问题内容: 除了是非持久性的并且仅限于当前窗口之外,会话存储与本地存储相比是否还有其他好处(性能,数据访问等)? 问题答案: localStorage和sessionStorage都扩展了Storage。除了的预期的“非持久性”外,它们之间没有区别。 也就是说,存储在中的数据将 一直保留到明确删除为止 。所做的更改将被保存,并且可用于当前和将来对该站点的所有访问。 对于, 更改仅在每个选项卡上可用

  • 主要内容:本节引言:,1.Android文件的操作模式,2.文件的相关操作方法,3.文件读写的实现,4.读取SD卡上的文件,5.关于原生模拟器SD卡的问题,6.读取raw和assets文件夹下的文件,代码下载:,本节小结:本节引言: 嘿嘿,看到这个题目,相信部分读者会问,你前面的Fragment写完了吗?嗯,没写完,因为想例子,需要 一点时间,为了提高效率,所以决定像多线程一样,并发的来写教程,这样可能可以加快写教程的进度, 到现在为止,刚好写了60篇,离完成入门教程还很远呢,而前面也说过,想在

  • 好吧,我一直在Kotlin试验原始数据存储,我有一个问题。我正在使用以下内容。原型文件: 这是我的序列化程序类: 和我的存储库: 因此,在我的updateValue()方法中,我可以设置“name”字段的名称,但我没有地址消息字段的setter,如street和number。编译器只显示getter。在姓名和年龄字段的另一边,我有setters。如何对这两个地址字段使用setters:街道、编号?