我们需要将存储在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
答案 0 :(得分:0)
根据您的描述,根据我的理解,我认为您的关键需求是如何使用pandas
/ numpy
软件包将存储在Azure Data Lake Store中的数据从JSON格式转换为CSV格式的CSV格式。所以我查看了你的源数据,并假设JSON中没有数组类型,然后我设计了下面的代码用于示例数据转换。
这是我的JSON格式对象字符串的示例代码。作为参考,我添加了一些注释来理解我的想法,关键是将flattern
转换为结构{"A": 0, "B": {"C": 1}}
的方法{。}}。
[["A", "B.C"], [0, 1]]
希望它有所帮助。