我正试图复制到带有ga数据的红移json文件中,其结构如下:
{
"reports": [
{
"columnHeader": {
"dimensions": [
"ga:date",
"ga:country"
],
"metricHeader": {
"metricHeaderEntries": [
{
"name": "ga:users",
"type": "INTEGER"
},
{
"name": "ga:newUsers",
"type": "INTEGER"
},
{
"name": "ga:sessionduration",
"type": "TIME"
}
]
}
},
"data": {
"rows": [
{
"dimensions": [
"20200731",
"(not set)"
],
"metrics": [
{
"values": [
"7",
"6",
"5.0"
]
}
]
},
{
"dimensions": [
"20200731",
"Albania"
],
"metrics": [
{
"values": [
"2",
"1",
"0.0"
]
}
]
},
{
"dimensions": [
"20200731",
"Algeria"
],
"metrics": [
{
"values": [
"1",
"1",
"224.0"
]
}
]
},
如果使用以下json路径,它只加载数组中的第一个对象:
{
"jsonpaths": [
"$['reports'][0]['data']['rows'][0]['dimensions'][0]",
"$['reports'][0]['data']['rows'][0]['dimensions'][1]",
"$['reports'][0]['data']['rows'][0]['metrics'][0]['values'][0]" ,
"$['reports'][0]['data']['rows'][0]['metrics'][0]['values'][1]" ,
"$['reports'][0]['data']['rows'][0]['metrics'][0]['values'][2]"
]
}
我试图将['rows'][0]更改为['rows'][*]和['rows'],但没有任何帮助。我应该如何更改json路径来加载文件中的所有数据?
谢谢!
1条答案
按热度按时间7cwmlq891#
由于指定的索引,redshift只能看到第一行
[0]
(第一项)。您当前不能直接接收像这样嵌套的json。要访问此文件中的所有嵌套数组,需要将其定义为外部表,然后使用嵌套数据查询语法。
从这里开始:“教程:使用amazon红移光谱查询嵌套数据”