gpt4 book ai didi

json - 如何加载在HIVE中压缩的json snappy

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

我在HDFS中有一堆json快照压缩文件。
它们是HADOOP快速压缩的(不是python,请参阅其他SO问题)
并具有嵌套结构。
找不到将它们加载到的方法
进入HIVE(使用json_tuple)?
我可以获取一些有关如何加载它们的资源/提示
以前的引用(没有有效的答案)
pyspark how to load compressed snappy file
Hive: parsing JSON

最佳答案

  • 将所有文件放在HDFS文件夹中,并在其上面创建外部表。如果文件具有.snappy之类的名称,则Hive会自动识别它们。您可以为写表指定SNAPPY输出格式:

  • set hive.exec.compress.output=true;
    set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;
    set mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;
    set mapreduce.output.fileoutputformat.compress.type=BLOCK;



    CREATE EXTERNAL TABLE mydirectory_tbl(
    id string,
    name string
    )
    ROW FORMAT SERDE
    'org.openx.data.jsonserde.JsonSerDe'
    LOCATION '/mydir' --this is HDFS/S3 location
    ;
  • JSONSerDe可以解析所有复杂的结构,比使用json_tuple容易得多。 json中的简单属性按原样映射到列。方括号中的所有内容[]是一个数组<>,在{}中是struct <>或map <>,可以嵌套复杂类型。仔细阅读自述文件:https://github.com/rcongiu/Hive-JSON-Serde。这里有一个关于嵌套结构的部分,以及有关CREATE TABLE的许多示例。
  • 如果您仍要使用json_tuple,则创建具有单个STRING列的表,然后使用json_tuple进行解析。但这要困难得多。
  • 所有JSON记录都应位于单行中(JSON对象内以及\r内不得包含换行符)。这里也提到了https://github.com/rcongiu/Hive-JSON-Serde
  • 关于json - 如何加载在HIVE中压缩的json snappy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64353405/

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