gpt4 book ai didi

json - 如何在Pig中从json中加载json和值?

转载 作者:行者123 更新时间:2023-12-02 20:38:44 25 4
gpt4 key购买 nike

我有一个json和json中的值

000000,{"000":{"phoneNumber":null,"firstName":"xyz","lastName":"pqr","email":"email@xyz.com","alternatePickup":true,"sendTextNotification":false,"isSendTextNotification":false,"isAlternatePickup":true}}



我正在尝试使用大象鸟json加载器在 pig 中加载此json,但无法做到这一点。
我可以加载以下json

{"000":{"phoneNumber":null,"firstName":"xyz","lastName":"pqr","email":"email@xyz.com","alternatePickup":true,"sendTextNotification":false,"isSendTextNotification":false,"isAlternatePickup":true}}



使用以下脚本-
REGISTER json-simple-1.1.1.jar;
REGISTER elephant-bird-pig-4.3.jar;
REGISTER elephant-bird-hadoop-compat-4.3.jar;

json_data = load 'ek.json' using com.twitter.elephantbird.pig.load.JsonLoader() AS (json_key: [(phoneNumber:chararray,firstName:chararray,lastName:chararray,email:chararray,alternatePickup:boolean,sendTextNotification:boolean,isSendTextNotification:boolean,isAlternatePickup:boolean)]);

dump json_data;

但是当我将值包含在json中时
json_data = load 'ek.json' using com.twitter.elephantbird.pig.load.JsonLoader() AS (id:int,json_key: [(phoneNumber:chararray,firstName:chararray,lastName:chararray,email:chararray,alternatePickup:boolean,sendTextNotification:boolean,isSendTextNotification:boolean,isAlternatePickup:boolean)]);

它不起作用!提前感谢帮助。

最佳答案

JsonLoader允许仅加载正确的json,而您的格式实际上是CSV。通过增加复杂性可以为您提供三个选项:

  • 调整您的输入格式并使id成为
  • 将数据作为CSV加载(作为2个字段:id和json,然后使用自定义UDF将json字段解析为元组)
  • 编写允许您使用原始格式的自定义加载程序。
  • 关于json - 如何在Pig中从json中加载json和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50298219/

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