没有Hadoop的实木复合地板?

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")


fab*_*ica 9

调查同样的问题,我发现显然现在不可能.我发现了这个git问题,建议将镶木地板与hadoop api脱钩.显然它还没有完成.

在Apache Jira中我发现了一个问题,它要求在hadoop之外读取镶木地板文件.写作时尚未解决.

编辑:

github上不再跟踪问题(上面的第一个链接已经死了).我发现的一个较新的问题是位于apache的Jira上,标题如下:

在不依赖于hadoop的情况下,可以轻松地在java中读取和编写镶木地板文件

  • 这是2015年写的,2018年更新的。现在都2020年了,依然没有欢乐。 (2认同)