cap*_*man 17 hadoop hdfs parquet
我想在我的一个项目中使用镶木地板作为柱状存储.但我不想依赖于hadoop/hdfs库.是否可以在hdfs外使用镶木地板?或者什么是最小依赖?
meo*_*eow 11
由于它只是一种文件格式,显然可以将 parquet 从 Hadoop 生态系统中分离出来。现在我能找到的最简单的方法是通过 Apache Arrow,请参见此处的 Python 示例。
这是 PyArrow 官方文档的一小段摘录:
写作
In [2]: import numpy as np
In [3]: import pandas as pd
In [4]: import pyarrow as pa
In [5]: df = pd.DataFrame({'one': [-1, np.nan, 2.5],
...: 'two': ['foo', 'bar', 'baz'],
...: 'three': [True, False, True]},
...: index=list('abc'))
...:
In [6]: table = pa.Table.from_pandas(df)
In [7]: import pyarrow.parquet as pq
In [8]: pq.write_table(table, 'example.parquet')
Run Code Online (Sandbox Code Playgroud)
读
In [11]: pq.read_table('example.parquet', columns=['one', 'three'])
Run Code Online (Sandbox Code Playgroud)
编辑:
直接使用 Pandas
也可以直接使用pandas来读写DataFrame。这使它变得像my_df.to_parquet("myfile.parquet")和一样简单my_df = pd.read_parquet("myfile.parquet")
调查同样的问题,我发现显然现在不可能.我发现了这个git问题,建议将镶木地板与hadoop api脱钩.显然它还没有完成.
在Apache Jira中我发现了一个问题,它要求在hadoop之外读取镶木地板文件.写作时尚未解决.
编辑:
github上不再跟踪问题(上面的第一个链接已经死了).我发现的一个较新的问题是位于apache的Jira上,标题如下:
在不依赖于hadoop的情况下,可以轻松地在java中读取和编写镶木地板文件
| 归档时间: |
|
| 查看次数: |
4411 次 |
| 最近记录: |