我一直在研究在一个项目中使用avro、parquet和其他数据源的利弊。如果我从其他不使用hadoop的人那里接收到输入数据,他们能以avro/parquet格式提供这些输入数据吗?到目前为止,我对这些格式的阅读只是在hadoop基础设施的范围内,所以我想知道对于那些仅仅使用oracle/sql来提供这种格式的数据的人来说有多困难。
cqoc49vn1#
不使用hadoop也可以使用这些格式,但是这样做的容易程度取决于语言绑定。例如,使用java语言绑定(甚至称为 parquet-mr mr代表mapreduce),因为它大量构建在hadoop类上。它们通常在hadoop集群的类路径上提供,但在独立计算机上不太容易获得。(虽然 parquet-mr 主要是一个java库,它还包含一些用户可能希望在本地机器上运行的工具。为了解决这个问题 parquet-tools 的模块 parquet-mr 包含一个名为 local 它将hadoop依赖项打包到编译工具中。但是,这只适用于 parquet-tools 你必须自己编译它来生成本地版本。)另一方面,python语言绑定非常容易设置,在独立机器上也可以很好地工作。您可以直接使用高级pandas接口或实际实现pyarrow/fastparquet。
parquet-mr
parquet-tools
local
1条答案
按热度按时间cqoc49vn1#
不使用hadoop也可以使用这些格式,但是这样做的容易程度取决于语言绑定。
例如,使用java语言绑定(甚至称为
parquet-mr
mr代表mapreduce),因为它大量构建在hadoop类上。它们通常在hadoop集群的类路径上提供,但在独立计算机上不太容易获得。(虽然
parquet-mr
主要是一个java库,它还包含一些用户可能希望在本地机器上运行的工具。为了解决这个问题parquet-tools
的模块parquet-mr
包含一个名为local
它将hadoop依赖项打包到编译工具中。但是,这只适用于parquet-tools
你必须自己编译它来生成本地版本。)另一方面,python语言绑定非常容易设置,在独立机器上也可以很好地工作。您可以直接使用高级pandas接口或实际实现pyarrow/fastparquet。