gpt4 book ai didi

csv - 使用 Trino(以前称为 PrestoDB)将非 varchar 数据导出到 CSV 表

转载 作者:行者123 更新时间:2023-12-02 18:51:21 34 4
gpt4 key购买 nike

我正在研究一些基准测试,需要比较 ORC、Parquet 和 CSV 格式。我已将 TPC/H (SF1000) 导出到基于 ORC 的表。当我想将它导出到 Parquet 时,我可以运行:

CREATE TABLE hive.tpch_sf1_parquet.region
WITH (format = 'parquet')
AS SELECT * FROM hive.tpch_sf1_orc.region

当我尝试使用 CSV 的类似方法时,出现错误 Hive CSV storage format only supports VARCHAR (unbounded)。我假设它会将其他数据类型(即 bigint)转换为文本并将列格式存储在 Hive 元数据中。

我可以使用 trino --server trino:8080 --catalog hive --schema tpch_sf1_orc --output-format=CSV --execute 'SELECT * FROM nation 将数据导出到 CSV,但是然后它被发送到一个文件。虽然这适用于 SF1,但很快就无法用于 SF1000 比例因子。另一个缺点是我的 Hive 元存储没有适当的元数据(尽管如果没有其他方法我可以手动修补它)。

有人知道如何使用 Hive 将我的 ORC/Parquet 数据转换为 CSV 吗?

最佳答案

在 Trino Hive 连接器中,CSV 表只能包含 varchar 列。

创建表时需要将导出的列转换为varchar

CREATE TABLE region_csv
WITH (format='CSV')
AS SELECT CAST(regionkey AS varchar), CAST(name AS varchar), CAST(comment AS varchar)
FROM region_orc

请注意,您需要相应地更新基准查询,例如通过应用反向转换。

关于csv - 使用 Trino(以前称为 PrestoDB)将非 varchar 数据导出到 CSV 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66714596/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com