如何铸造并回到嵌套的列中



我有一个嵌套的JSON数据文件。我需要用特定的数字数据类型写入parquet。因此,需要控制某些字段是整数,有些是长时间等。我可以施放列,但不能将它们写回嵌套的位置。数据必须在嵌套结构中。

这是我尝试的:

CREATE TABLE cdg.`test2.parquet` AS SELECT CAST(t.l1.l2.id AS INTEGER) l1.l2.id FROM cdg.`data.json` t;

我遇到的错误是cast语句的关闭括号之后的路径上的Error: PARSE ERROR: Encountered "." AS INTEGER) l1.l2.id FROM c ^

分析#1:如果我不放置该嵌套字段,则表达式结果很好:

+---------+ | EXPR$0 | +---------+ | 22222 | | 22222 | | 22222 | | 22222 |

任何见解都将不胜感激。

此错误抱怨说您无法指定字段名称l1.l2.ID为铸件表达式的别名。别名应该是顶级字段。

可以使用或不使用" AS"关键字的AS或不使用" AS"(隐式解析器假定为(

将其提供给

因此,例如,如果要命名A铸件表达辅助的结果表达式,则可以使用以下SQL语句。

创建表CDG。test2.parquet作为选择铸件(T.L1.L2.ID作为Integer(作为CDG的ID。data.json T;

希望这会有所帮助。

最新更新