gpt4 book ai didi

csv - Impala 不支持自定义 SerDe,在带双引号的 CSV 中查询文件的最佳方式是什么?

转载 作者:可可西里 更新时间:2023-11-01 14:21:45 25 4
gpt4 key购买 nike

我有一个 CSV 数据,每个字段都用双引号引起来。当我创建Hive 表使用 serde 'com.bizo.hive.serde.csv.CSVSerde'当在 Impala 中查询上表时,出现错误 SerDe not found。

我在/usr/lib/impala/lib 文件夹中添加了 CSV Serde JAR 文件。

后来在Impala文档中研究到Impala不支持自定义塞尔德。在这种情况下,我该如何克服这个问题,使我的 CSV 数据引号被照顾。我想使用 CSV Serde 因为它需要值中的逗号是合法的字段值。

非常感谢

最佳答案

可以使用 Hive 吗?如果是这样,这里有一种可能有效的方法。 CREATE 您的表作为 Hive 中的 EXTERNAL TABLE 并在 CREATE 语句的正确位置使用您的 SERDE(我认为您需要像 ROW在 CREATE TABLE 语句的末尾格式化 SERDE your_serde_here)。在此之前你可能需要做:

ADD JAR 'hdfs:///path/to/your_serde.jar' 

请注意,jar 应该位于 hdfs 中的某处,并且需要三重///才能工作...

然后,仍然在 Hive 中,将该表复制到另一个表中,该表以 Impala 可以轻松使用的格式存储,例如 PARQUET。像下面这样的东西做这个复制:

CREATE TABLE copy_of_table 
STORED AS PARQUET AS
SELECT * FROM your_original_table

现在在 Impala 中使用 INVALIDATE METADATA将元数据标记为陈旧:

INVALIDATE METADATA copy_of_table

现在您应该准备好在 Impala 中愉快地使用 copy_of_table 了。

让我知道这是否有效,因为在不久的将来我可能会做类似的事情。

关于csv - Impala 不支持自定义 SerDe,在带双引号的 CSV 中查询文件的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25642542/

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