我在S3存储桶中存储了一些json文件,其中每个文件都有多个具有相同结构的元素。例如,
[{"eventId":"1","eventName":"INSERT","eventVersion":"1.0","eventSource":"aws:dynamodb","awsRegion":"us-west-2","image":{"Message":"New item!","Id":101}},{"eventId":"2","eventName":"MODIFY","eventVersion":"1.0","eventSource":"aws:dynamodb","awsRegion":"us-west-2","image":{"Message":"This item has changed","Id":101}},{"eventId":"3","eventName":"REMOVE","eventVersion":"1.0","eventSource":"aws:dynamodb","awsRegion":"us-west-2","image":{"Message":"This item has changed","Id":101}}]
我想在雅典娜中创建一个与上述数据相对应的表。
我为创建表编写的查询:
CREATE EXTERNAL TABLE IF NOT EXISTS sampledb.elb_logs2 (
`eventId` string,
`eventName` string,
`eventVersion` string,
`eventSource` string,
`awsRegion` string,
`image` map<string,string>
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES (
'serialization.format' = '1',
'field.delim' = ' '
) LOCATION 's3://<bucketname>/';
但是,如果我按以下方式执行SELECT查询,
SELECT * FROM sampledb.elb_logs4;
我得到以下结果:
1 {"eventid":"1","eventversion":"1.0","image":{"id":"101","message":"New item!"},"eventsource":"aws:dynamodb","eventname":"INSERT","awsregion":"us-west-2"} {"eventid":"2","eventversion":"1.0","image":{"id":"101","message":"This item has changed"},"eventsource":"aws:dynamodb","eventname":"MODIFY","awsregion":"us-west-2"} {"eventid":"3","eventversion":"1.0","image":{"id":"101","message":"This item has changed"},"eventsource":"aws:dynamodb","eventname":"REMOVE","awsregion":"us-west-2"}
json文件的全部内容在此处被选为一项。
如何将json文件的每个元素作为一个条目读取?
编辑:如何读取图像的每个子列,即地图的每个元素?
谢谢。
问题1:在AWS Athena的json文件中存储多个元素
我需要将我的json文件重写为
{“ eventId”:“ 1”,“ eventName”:“ INSERT”,“ eventVersion”:“ 1.0”,“
eventSource”:“ aws:dynamodb”,“ awsRegion”:“ us-west-2”,“ image” :{“
Message”:“新项!”,“ Id”:101}},{“ eventId”:“ 2”,“ eventName”:“ MODIFY”,“
eventVersion”:“ 1.0”,“ eventSource”:“ aws:dynamodb“,” awsRegion“:” us-
west-2“,” image“:{” Message“:”此项已更改“,” Id“:101}},{” eventId“:” 3“, “
eventName”:“ REMOVE”,“ eventVersion”:“ 1.0”,“ eventSource”:“ aws:dynamodb”,“
awsRegion”:“ us-west-2”,“ image”:{“ Message”:“此项目已更改“,” Id“:101}}
那意味着
删除方括号[]将每个元素放在一行中
{.....................}
{.....................}
{.....................}
问题2。 访问非线性json属性
CREATE EXTERNAL TABLE IF NOT EXISTS <tablename> (
`eventId` string,
`eventName` string,
`eventVersion` string,
`eventSource` string,
`awsRegion` string,
`image` struct <`Id` : string,
`Message` : string>
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES (
'serialization.format' = '1',
"dots.in.keys" = "true"
) LOCATION 's3://exampletablewithstream-us-west-2/';
查询:
select image.Id, image.message from <tablename>;
参考:
http://engineering.skybettingandgaming.com/2015/01/20/parsing-json-in-
hive/
https://github.com/rcongiu/Hive-JSON-Serde#mapping-hive-
keywords
我的程序询问用户的姓名和年龄。用户名是他们的姓名和年龄,最后加上一个随机字符。我想将该用户名存储到一个新的文本文件中,但是每当我运行代码时,它一次只写入一个用户名,它不包括我之前添加的用户名。这是我的代码请帮助我,我是新来的。
我正在为一个项目制作购物车脚本。购物车已经创建,但现在我正在查询购物车中的产品插入订单表的位置。但是当我这样做的时候,每个产品都有自己的,有没有可能给购物车中的每个产品相同的? 将产品插入订单表的查询: SQL查询如下: 我希望有人能给我一些建议, 提前感谢!
问题内容: 我知道这取决于系统中可用的内存,还取决于良好的哈希函数,但总的来说,我想知道您使用的最大地图是什么,以及是否开箱即用,需要进行任何调整才能使其正常运行。 问题答案: Java中的A 最多可以有2 ^ 30个存储桶来存储条目- 这是因为所使用的存储桶分配技术要求存储桶的数量为2的幂,并且因为ints是用Java签名的,所以最大正值是2 ^ 31-1,因此2的最大乘方是2 ^ 30。 但是
关于 Photoshop PDF 格式 您也可以使用“存储为”命令以 Photoshop PDF 格式存储 RGB、索引颜色、CMYK、灰度、位图模式、Lab 颜色和双色调的图像。由于 Photoshop PDF 文档可以保留 Photoshop 数据,如图层、Alpha 通道、注释和专色,因此可以在 Photoshop CS2 或更高版本中打开文档并编辑图像。 注意:通过对文件执行“存储为 Ph
我试图将多个存根组合到一个JSON文件中。 我已经准备好阅读这篇文章:加载wiremock存根文件和这篇文章https://github.com/tomakehurst/wiremock/issues/987https://github.com/tomakehurst/wiremock/issues/987 但我还是做不到。 目前,我有以下课程: 在我的文件夹中,我有: 具有不同存根的文件夹 我想