gpt4 book ai didi

hadoop - 如何处理 Hive 中的分隔符

转载 作者:可可西里 更新时间:2023-11-01 16:26:05 27 4
gpt4 key购买 nike

当值中有\t且分隔符也是\t时,我们如何处理Hive中的数据。例如,假设有一列为 Street,数据类型为 String,值为 XXX\tYYY,在创建表时我们使用了字段分隔符为 \t。分隔符将如何工作?在这种情况下,值中的 \t 是否也会被分隔?

最佳答案

如果具有 \t 值的列被引号字符括起来,例如 " 您可以使用 csv-serde 来解析数据,如下所示:

这是我加载的示例数据集:

R1Col1  R1Col2  "R1Col3 MoreData"   R1Col4
R2Col2 R2Col2 "R2Col3 MoreData" R2Col4
  1. 从 hive 控制台注册 jar

    hive> add jar /path/to/csv-serde-1.1.2-0.11.0-all.jar;
  2. 创建具有指定 serde 和自定义属性的表

    hive> create table test_table(c1 string, c2 string, c3 string, c4 string)
    > row format serde 'com.bizo.hive.serde.csv.CSVSerde'
    > with serdeproperties(
    > "separatorChar" = "\t",
    > "quoteChar" = "\"",
    > "escapeChar" = "\\"
    > )
    > stored as textfile;
  3. 将您的数据集加载到表中:

    hive> load data inpath '/path/to/file/in/hdfs' into table test_table;
  4. 执行select * from test_table检查结果

您可以从 here 下载 csv-serde .

关于hadoop - 如何处理 Hive 中的分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27150094/

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