我有一個文件每行有一個JSON。下面是一個示例:與Python拼接的嵌套數據
{
"product": {
"id": "abcdef",
"price": 19.99,
"specs": {
"voltage": "110v",
"color": "white"
}
},
"user": "Daniel Severo"
}
我想創建一個如列的拼花文件:
product.id, product.price, product.specs.voltage, product.specs.color, user
我知道,實木複合地板具有使用的Dremel算法嵌套的編碼,但我一直沒能夠在Python中使用它(不知道爲什麼)。
我是一個沉重的熊貓和DASK用戶,所以管道,我試圖構造是json data -> dask -> parquet -> pandas
,雖然如果任何人有創建和使用Python在地板閱讀這些嵌套編碼的一個簡單的例子,我認爲這將足夠好:d
編輯
所以,在永久居民挖後,我發現這一點:https://github.com/dask/fastparquet/pull/177
這基本上是我想做的事情。儘管如此,我仍然無法完成這項工作。我如何告訴dask/fastparquet我的product
列是嵌套的?
- dask版本:0.15.1
- fastparquet版本:0.1.1
fastparquet大概可以*讀取*如上所述的鑲木地板文件,但不能寫入它們。這是因爲熊貓數據框(目標結構)很少會看起來像這樣。您可以將架構自己扁平化爲熊貓數據框,並且可以在寫入時使用JSON(object_encoding = {'specs':'JSON'})編碼任何重複值(列表,字典)。 – mdurant
(注意:MAP和LIST鑲木地板類型的書寫可以用於fastparquet,但在我看來,似乎比需求更合理) – mdurant
做過類似的事情。我會很快在這裏發佈一個例子作爲答案。謝謝! –