gpt4 book ai didi

json - 配置单元 : How to explode a JSON column embedded in a CSV file?

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

从一个 CSV 文件(带有一个标题和一个竖线分隔符)我得到了以下两个包含一个 JSON 列(里面有一个集合)的内容,如下所示:

第一种情况(使用没有名称的 JSON 集合):

ProductId|IngestTime|ProductOrders
9180|20171025145034|[{"OrderId":"299","Location":"NY"},{"OrderId":"499","Location":"LA"}]
8251|20171026114034|[{"OrderId":"1799","Location":"London"}]

第二种情况(带有一个名为“Orders”的 JSON 集合):

ProductId|IngestTime|ProductOrders
9180|20171025145034|{"Orders":[{"OrderId":"299","Location":"NY"},{"OrderId":"499","Location":"LA"}]}
8251|20171026114034|{"Orders":[{"OrderId":"1799","Location":"London"}]}

首先,我像这样创建我的“原始”表:

DROP TABLE IF EXISTS Product;
CREATE EXTERNAL TABLE Product (
ProductId STRING,
IngestTime STRING,
ProductOrders STRING
)
COMMENT "Product raw table"
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\|'
STORED AS TEXTFILE
LOCATION
'/data/product'
TBLPROPERTIES ("skip.header.line.count"="1");

当我查询我的表时:

SELECT * FROM Product

我得到以下答案:

第一种情况(使用没有名称的 JSON 集合):

ProductId  IngestTime      ProductOrders
9180 20171025145034 [{"OrderId":"299","Location":"NY"},{"OrderId":"499","Location":"LA"}]
8251 20171026114034 [{"OrderId":"1799","Location":"London"}]

第二种情况(带有一个名为“Orders”的 JSON 集合):

ProductId  IngestTime      ProductOrders
9180 20171025145034 {"Orders":[{"OrderId":"299","Location":"NY"},{"OrderId":"499","Location":"LA"}]}
8251 20171026114034 {"Orders":[{"OrderId":"1799","Location":"London"}]}

很好,到目前为止效果很好!

但我现在需要的是创建一个返回的 SELECT 查询:

ProductId  IngestTime      ProductOrderId ProductLocation
9180 20171025145034 299 NY
9180 20171025145034 499 LA
8251 20171026114034 1799 London

我真的需要一个可移植的 SQL 查询,它适用于我的两种情况(有或没有标签“OrderId”)。

到目前为止,我尝试了很多组合,使用 'explode'、'get_json_object' 等,但我仍然没有找到正确的 SQL 查询。

非常感谢您的帮助:-)

最佳答案

你可以试试

CREATE EXTERNAL TABLE product(productid String,ingesttime String, productorders array<struct<orderid:String,location:string>> ) 

select productid,ingesttime, productorders.orderid[0] as orderid , productorders.location[0] as location from product

enter image description here

关于json - 配置单元 : How to explode a JSON column embedded in a CSV file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46935265/

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