28

我想在我的一个项目中使用镶木地板作为柱状存储。但我不想依赖 hadoop/hdfs 库。是否可以在 hdfs 之外使用镶木地板?或者什么是最小依赖?

4

6 回答 6

14

调查同样的问题,我发现目前显然不可能。我发现了这个git issue,它建议将镶木地板与 hadoop api 分离。显然它还没有完成。

在 Apache Jira 中,我发现了一个问题,它要求提供一种在 hadoop 之外读取 parquet 文件的方法。在撰写本文时尚未解决。

编辑:

不再在 github 上跟踪问题(上面的第一个链接已失效)。我发现的一个新问题位于apache 的 Jira上,标题如下:

无需依赖 hadoop 就可以轻松地在 java 中读写 parquet 文件

于 2015-07-24T11:24:31.523 回答
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')

阅读

In [11]: pq.read_table('example.parquet', columns=['one', 'three'])

编辑:

直接使用 Pandas

也可以直接使用 pandas 来读写 DataFrame。这使它变得像my_df.to_parquet("myfile.parquet")my_df = pd.read_parquet("myfile.parquet")

于 2019-02-27T21:55:15.180 回答
2

您不需要 HDFS/Hadoop 来使用 Parquet 文件。Parquet 有不同的消费方式。

  • 您可以使用 Apache Spark 访问它。
  • 如果您在 AWS 上,您可以直接从 Redshift 或 Athena 加载或访问它
  • 如果您在 Azure 上,则可以从 SQL DataWarehouse 或 SQL Server 加载或访问它
  • 同样在 GCP 中
于 2020-01-30T11:23:47.850 回答
2

Parquet 中有哪些类型的数据?您不需要 HDFS 来读取 Parquet 文件。这绝对不是先决条件。我们在 Incorta 使用 parquet 文件作为临时表。我们不附带对 HDFS 的依赖,但是,如果需要,您可以将文件存储在 HDFS 上。显然,我们 Incorta 可以直接从 parquet 文件中读取,但您也可以使用 Apache Drill 进行连接,使用 file:/// 作为连接而不是 hdfs:/// 示例见下文。

要读取或写入 Parquet 数据,您需要在存储插件格式定义中包含 Parquet 格式。dfs 插件定义包括 Parquet 格式。

{
  "type" : "file",
  "enabled" : true,
  "connection" : "file:///",
  "workspaces" : {
  "json_files" : {
  "location" : "/incorta/tenants/demo//drill/json/",
  "writable" : false,
  "defaultInputFormat" : json
  } 
},
于 2016-12-22T07:32:31.517 回答
2

派对迟到了,但我一直在努力让这成为可能:https ://github.com/jmd1011/parquet-readers 。

这仍在开发中,但最终的实现应该在写这篇文章的一两个月内完成。

编辑:几个月后,仍在努力!它正在积极开发中,只是花费的时间比预期的要长。

于 2016-06-28T18:02:08.973 回答
0

现在你不需要像以前那样严重依赖hadoop了。

请参阅我的另一篇文章:如何在 Windows 中查看 Apache Parquet 文件?

于 2018-06-24T13:32:12.540 回答