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

在不影响现有数据的情况下更新拼花地板文件的数据类型

华哲茂
2023-03-14

我有一个带有多列的拼花文件,其中一列是例如:带有数据类型时间戳的cola。在S3路径上创建了外部Athena非分区表。我想将cola的数据类型从时间戳更改为日期,而无需重新运行或影响存量数据。

有没有办法做到这一点?

谢谢

共有1个答案

有耀
2023-03-14

如果您不添加新文件,或者新文件也会附带时间戳,请在使用时强制转换:

sql prettyprint-override">SELECT DATE(a) AS a, ... FROM table

如果您将有带有日期列的新文件,那就更复杂了。您不能有混合类型的列。它必须是日期或时间戳。

一种解决方法是创建一个名为like a2的新列,使用日期类型,在新文件中使用它,并将其添加到粘合模式中。Glue可以处理缺少的列,因此旧文件中的行将填充a,但为空,反之亦然。

从现在开始,您可以将所有文件用作:

SELECT COALESCE(DATE(a), a2) AS a, ... FROM table

但是,我更建议保持文件整洁,并使用一些ETL工具将旧拼花文件转换为当前模式。

 类似资料:
  • 如何将数据帧中的数据写入到单个。拼花地板文件(两个数据 df.rdd.get1个分区 1个 如果我使用上述命令在HDFS中创建拼花文件,它将在HDFS中创建目录“payloads.parquet”,并在该目录中创建多个文件。拼花地板文件,元数据文件正在保存。 找到4项 如何将数据帧中的数据写入单个文件(两个数据 帮助将不胜感激。

  • 我有一个用户名列表,用户名列表根据用户输入的数量而增加。问题是,当用户输入用户名时,列表会被输入填充,只有当我的页面重新加载时,我的页面才会更新。这是我迄今为止尝试过的代码。 我无法在外页重新加载的情况下更新数据。请建议我如何更新ui:在外页重新加载的情况下重复数据。提前谢谢。

  • 我安装了一个HBase,其中有一组现有表,其中有一组数据(我不想删除)。最近,我偶然发现使用Apache Phoenix可以使用类似SQL的语法查询HBase数据,到目前为止,这非常棒。然而,由于我仍然不完全熟悉各种数据类型以及它们如何映射到我存储在HBase中的Java类型,有时我会弄错。如果我有一个存储为的HBase列 我不小心将我的Phoenix列创建为varchar,我现在如何在不丢失所有

  • 问题内容: 我使用pandas以以下方式写入excel文件: Masterfile.xlsx已经包含许多不同的选项卡。但是,它尚未包含“ Main”。 熊猫正确地写到“主要”表,不幸的是,它也删除了所有其他标签。 问题答案: Pandas文档说,它对xlsx文件使用openpyxl。快速浏览一下其中的代码ExcelWriter可以提示可能会发生以下情况:

  • Spark版本:2.3 hadoop dist:azure Hdinsight 2.6.5平台:azure存储:BLOB 集群中的节点:6个执行器实例:每个执行器6个内核:每个执行器3个内存:8gb 试图通过同一存储帐户上的spark数据框将azure blob(wasb)中的csv文件(大小4.5g-280列,2.8 mil行)加载到拼花格式。我重新划分了大小不同的文件,即20、40、60、10