ryo*_*ryo 4 python amazon-web-services aws-glue
我是AWSGlue的新手.我正致力于使用AWSGlue将原始cloudwatch json转换为csv.转换脚本非常简单,但文档和示例似乎并不全面.数据结构是这样的:
{
"Label": "RequestCount",
"Datapoints": [
{
"Timestamp": "2017-07-23T00:00:00Z",
"Sum": 41960.0,
"Unit": "Count"
},
{
"Timestamp": "2017-07-30T00:00:00Z",
"Sum": 46065.0,
"Unit": "Count"
},
{
"Timestamp": "2017-08-24T00:00:00Z",
"Sum": 43915.0,
"Unit": "Count"
},
Run Code Online (Sandbox Code Playgroud)
棘手的部分是将它从单个动态帧(标签,字符串,数据点阵列)转换为动态帧(Timestamp,string,Sum,Double,Unit,String).我不确定在动态数据帧中使用哪种方法.
我不认为AWSGlue为它提供任何映射方法.经过一番挣扎,我发现在pyspark中转换相对容易.这是伪代码:
从数据库中检索数据源
datasource0 = glueContext.create_dynamic_frame.from_catalog(database = ...)
Run Code Online (Sandbox Code Playgroud)将其转换为DF并将其转换为spark
mapped_df = datasource0.toDF().select(explode(col("Datapoints")).alias("collection")).select("collection.*")
Run Code Online (Sandbox Code Playgroud)转换回DynamicFrame并继续其余的ETL过程
mapped_datasource0 = DynamicFrame.fromDF(mapped_df, glueContext, "mapped_datasource0");
Run Code Online (Sandbox Code Playgroud)感谢这个参考
| 归档时间: |
|
| 查看次数: |
5518 次 |
| 最近记录: |