雅典娜/ ANSI SQL-选择列作为结构

kid_drew

我已经进行了广泛的Google搜索,但没有找到答案。

我正在雅典娜工作,并使用CTAS查询将数据从大型CSV文件提取到Parquet中,以实现更高效的查询。我希望能够将一些记录放入一个结构中,以便使用下标进行访问。我知道在Parquet中可以使用结构,但是我不知道如何编写查询(或者甚至可能)。

我已经尝试过这两种方法:

select email as "record.email"

select email as "record[email]"

显然,这将创建一个带有下标的列名称,该下标是字符串的一部分,而不是结构的成员。在ANSI SQL中甚至可能吗?

伊利亚·基西尔(Ilya Kisil)

AWS Athena文档提供以下示例

WITH dataset AS (
  SELECT
    CAST(
      ROW('Bob', 38) AS ROW(name VARCHAR, age INTEGER)
    ) AS users
)
SELECT * FROM dataset

-- Result
-- +--------------------+
-- | users              |
-- +--------------------+
-- | {NAME=Bob, AGE=38} |
-- +--------------------+

因此,对于您的情况,您可以尝试做类似的事情

SELECT
    CAST(ROW(email_column) AS ROW(email VARCHAR)) AS "record"
FROM database.table

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章