使用Python的U-SQL将Azure数据库存储中的JSON转换为CSV

时间:2017-03-25 13:27:16

标签: python json csv azure azure-data-lake

我们需要将存储在Azure数据湖存储中的一些大文件从嵌套的JSON转换为CSV。由于python模块pandas,除了标准模块之外,Azure数据湖分析中支持numpy,我相信它几乎可以使用python实现这一点。有没有人有python代码来实现这个目标?

来源格式:

  

{"禄":" TDM""主题":"位置"" LocMac":& #34;位置/ FE:7A:XX:XX:XX:XX"" SEQ":" 296083773""时间戳":1488986751,& #34; OP":" OP_UPDATE"" topicSeq":" 46478211""的SourceID":" AFBWmHSe&# 34;,"位置" {" staEthMac" {"地址":" / XXXXX"}" staLocationX&#34 ;:1643.8915," staLocationY":571.04205" ERRORLEVEL":1076,"相关联的":0," campusId":" n5THo6IINuOSVZ / cTidNVA =="" buildingId":" 7hY / XX =="" floorId":" XXXXXXXXXX + BYoo0A = ="" hashedStaEthMac":" XXXX / pMVyK4Gu9qG6w ="" locAlgorithm":" ALGORITHM_ESTIMATION""单元":" FEET"}" EventProcessedUtcTime":" 2017-03-08T15:35:02.3847947Z""的partitionid" :3," EventEnqueuedUtcTime":" 2017-03-08T15:35:03.7510000Z"" IoTHub" {"的MessageId":空"的correlationID":N ULL," ConnectionDeviceId":"为XXXXX"" ConnectionDeviceGenerationId":" 636243184116591838"" EnqueuedTime":&#34 ; 0001-01-01T00:00:00.0000000""流ID":空}}

预期输出

  

TDM,位置,位置/ 80:7A:BF:D4:d6中:50,974851970,1490004475,OP_UPDATE,151002334,XXXXXXX,GHQ / 1NZQ,977.7259,638.8827,490,1,n5THo6IINuOSVZ / cTidNVA ==,7hY / jVh9NRqqxF6gbqT7Jw ==,LV / ZiQRQMS2wwKiKTvYNBQ ==,H5rrAD / jg1Fnkmo1Zmquau / Qn1U =,ALGORITHM_ESTIMATION,FEET

1 个答案:

答案 0 :(得分:0)

根据您的描述,根据我的理解,我认为您的关键需求是如何使用pandas / numpy软件包将存储在Azure Data Lake Store中的数据从JSON格式转换为CSV格式的CSV格式。所以我查看了你的源数据,并假设JSON中没有数组类型,然后我设计了下面的代码用于示例数据转换。

这是我的JSON格式对象字符串的示例代码。作为参考,我添加了一些注释来理解我的想法,关键是将flattern转换为结构{"A": 0, "B": {"C": 1}}的方法{。}}。

[["A", "B.C"], [0, 1]]

希望它有所帮助。