Dan*_*ero 11 python json parquet dask
我有一个文件,每行有一个JSON.这是一个示例:
{
"product": {
"id": "abcdef",
"price": 19.99,
"specs": {
"voltage": "110v",
"color": "white"
}
},
"user": "Daniel Severo"
}
Run Code Online (Sandbox Code Playgroud)
我想用以下列创建一个镶木地板文件:
product.id, product.price, product.specs.voltage, product.specs.color, user
Run Code Online (Sandbox Code Playgroud)
我知道镶木地板使用Dremel算法进行嵌套编码,但我无法在python中使用它(不知道为什么).
我是一个沉重的熊猫和dask用户,所以我试图构建的管道是json data -> dask -> parquet -> pandas,虽然如果有人有一个简单的例子,使用Python在镶木地板中创建和读取这些嵌套编码我认为这样就足够了:D
编辑
所以,在挖掘PR之后我发现了这个:https://github.com/dask/fastparquet/pull/177
这基本上就是我想要做的.虽然,我仍然无法让它一直运作.我怎么告诉dask/fastparquet我的product列是嵌套的?
在任意Parquet嵌套数据的读取和写入路径上实现转换都非常复杂 - 实现碎片和重组算法以及与某些Python数据结构相关联的转换.我们在Arrow/parquet-cpp的路线图中有这个(参见https://github.com/apache/parquet-cpp/tree/master/src/parquet/arrow),但尚未完成(仅支持现在支持简单的结构和列表/数组).具有此功能非常重要,因为使用Parquet的其他系统(如Impala,Hive,Presto,Drill和Spark)在其SQL方言中对嵌套类型具有本机支持,因此我们需要能够忠实地读取和写入这些结构来自Python.
这也可以类似地在fastparquet中实现,但无论你如何切片,它都会有很多工作(和编写的测试用例).
如果没有人打败我,我今年晚些时候可能会亲自接受这项工作(在镶木地板上),但我很想得到一些帮助.
| 归档时间: |
|
| 查看次数: |
6558 次 |
| 最近记录: |