相关疑难解决方法(0)

一个文件中的多个Json对象由python提取

我是Json文件的新手.如果我有一个带有多个json对象的json文件,如下所示:

{"ID":"12345","Timestamp":"20140101", "Usefulness":"Yes",
  "Code":[{"event1":"A","result":"1"},…]}
{"ID":"1A35B","Timestamp":"20140102", "Usefulness":"No",
  "Code":[{"event1":"B","result":"1"},…]}
{"ID":"AA356","Timestamp":"20140103", "Usefulness":"No",
  "Code":[{"event1":"B","result":"0"},…]}
…
Run Code Online (Sandbox Code Playgroud)

我想将所有"时间戳"和"有用性"提取到数据框中:

    Timestamp    Usefulness
 0   20140101      Yes
 1   20140102      No
 2   20140103      No
 …
Run Code Online (Sandbox Code Playgroud)

有谁知道处理这些问题的一般方法?谢谢!

python parsing json pandas

31
推荐指数
4
解决办法
7万
查看次数

读取Amazon Kinesis Firehose流写入s3的数据

我正在写Kinesis Firehose流的记录,最终由Amazon Kinesis Firehose写入S3文件.

我的记录对象看起来像

ItemPurchase {
    String personId,
    String itemId
}
Run Code Online (Sandbox Code Playgroud)

数据写入S3看起来像:

{"personId":"p-111","itemId":"i-111"}{"personId":"p-222","itemId":"i-222"}{"personId":"p-333","itemId":"i-333"}
Run Code Online (Sandbox Code Playgroud)

没有COMMA分离.

像Json阵列一样没有启动支架

[
Run Code Online (Sandbox Code Playgroud)

没有结束支持,如在Json阵列中

]
Run Code Online (Sandbox Code Playgroud)

我想读取这些数据获取ItemPurchase对象的列表.

List<ItemPurchase> purchases = getPurchasesFromS3(IOUtils.toString(s3ObjectContent))
Run Code Online (Sandbox Code Playgroud)

读取此数据的正确方法是什么?

json amazon-s3 amazon-kinesis amazon-kinesis-firehose

14
推荐指数
3
解决办法
6045
查看次数

Athena 只能看到 Kinesis Analytics 写入 Firehose 的第一条 JSON 记录

我正在使用 Kinesis Analytics 从 Kinesis Firehose 读取 JSON。我成功过滤掉一些记录并将 JSON 属性的子集写入另一个 Firehose。

我想对通过目标 Firehose 写入 S3 的数据执行 Athena 查询。但是,写入 S3 中的文件的 JSON 记录没有任何换行符。因此,当我使用 Athena 查询数据时,它仅返回每个文件中的第一条记录。

当我将记录写入源 Firehose 时,我在记录之间手动插入换行符,但在写入目标时 Analytics 似乎没有执行此操作。

有没有办法让 Analytics 在记录之间写出分隔符或换行符,以便 Athena 可以查看所有记录?

amazon-web-services amazon-kinesis amazon-athena amazon-kinesis-firehose

5
推荐指数
1
解决办法
2418
查看次数

使用 lambda 转换将 Kinesis Firehose 转换为 ES

我想从订阅过滤器获取日志,然后将日志放入 s3 存储桶中并将它们发送到 ES。

类似于这里的图表:

https://aws.amazon.com/solutions/implementations/centralized-logging/

当我使用这个功能时:

/*
 For processing data sent to Firehose by Cloudwatch Logs subscription filters.
 Cloudwatch Logs sends to Firehose records that look like this:
 {
   "messageType": "DATA_MESSAGE",
   "owner": "123456789012",
   "logGroup": "log_group_name",
   "logStream": "log_stream_name",
   "subscriptionFilters": [
     "subscription_filter_name"
   ],
   "logEvents": [
     {
       "id": "01234567890123456789012345678901234567890123456789012345",
       "timestamp": 1510109208016,
       "message": "log message 1"
     },
     {
       "id": "01234567890123456789012345678901234567890123456789012345",
       "timestamp": 1510109208017,
       "message": "log message 2"
     }
     ...
   ]
 }
 The data is additionally compressed with GZIP.
 The code below will:
 1) Gunzip …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services elasticsearch kibana aws-lambda amazon-kinesis-firehose

1
推荐指数
1
解决办法
2605
查看次数