标签: parquet-mr

安装镶木地板工具

我正在尝试在 FreeBSD 机器上安装镶木地板工具。

我克隆了这个 repo: git clone https://github.com/apache/parquet-mr

然后我做了 cd parquet-mr/parquet-tools

然后我做了`mvn clean package -Plocal

如此处指定:https : //github.com/apache/parquet-mr/tree/master/parquet-tools

这是我得到的:

在此处输入图片说明

为什么这里出现这种依赖错误?我该如何解决?

java freebsd maven parquet parquet-mr

7
推荐指数
3
解决办法
2万
查看次数

用于查询优化的排序镶木地板文件

问题目的

对 parquet 文件进行排序有很多好处:

  • 使用文件元数据进行更有效的过滤
  • 更有效的压缩率

这样做可能还有其他好处。互联网上对此有很多讨论。正因为如此,这个问题的讨论并不是关于排序的原因。相反,这个问题的目的是谈论如何排序,这是在所有互联网链接中以最少解释(大约30%)提及的,而数据排序的挑战根本没有提及。这个问题的目的是希望得到该领域的专家和经验丰富的朋友的帮助,并确定最佳的排序方法(基于成本和收益)。

关于Apache parquet库的简要说明

在开始讨论 Spark 之前,我将解释一下用于生成 parquet 文件的工具。当我们创建 parquet 文件时,该parquet-mr库(例如我使用 Java,但它可能可以扩展到其他语言)会同时写入磁盘和内存。这个库还有一个功能叫做getDataSize()在磁盘上完全关闭后返回文件的准确最终大小,因此我们在写入parquet文件时可以使用它来实现以下两个条件:

  • 不要制作小尺寸的 parquet 文件(这对查询引擎不利)
  • 所有 parquet 文件都可以生成特定的最小大小或固定大小(例如,每个文件 1 GB)

由于这个库同时写入磁盘和内存,所以它不允许数据排序,除非所有数据先在内存中排序,然后交给库。(但这对于大量数据来说是不可能的。)我们还隐含地假设数据是作为我们打算存储的流生成的。(在数据固定的情况下,本题所陈述的问题将毫无意义,因为可以说整个数据一劳永逸地排列好了,问题就结束了。但是我们假设数据是有流动的,在这种情况下,采用最佳方式对数据进行排序非常重要)

上面提到的 Apache parquet 库的优点之一是我们可以确定输出 parquet 文件的确切大小。我认为这是一个优点。因为,例如,如果我知道 Hadoop 块的大小等于 128 MB,而 parquet 行组的大小为 128 MB,我可以将 parquet 文件大小固定为 1 GB。然后我知道所有镶木地板文件将有 8 个块,并且 HDFS 存储将得到最好的利用,并且所有镶木地板文件将相同。(因为在HDFS中,当块大小为128 MB时,较小的文件将占用相同的空间)这可能不是每个人的优势,如果需要的话,我们很乐意有经验的人批评它。

Parquet 文件排序挑战

在我们开始之前的一点是,我们正在寻找永久数据排序,因为我们将在接下来的数千个查询中使用它。几乎到目前为止,上面的描述已经确定了排序的一些挑战,但我将在下面描述所有挑战:

  1. Parquet 工具不允许您写入排序数据。因此一种方法是将所有数据保存在内存中,排序后将其交给 parquet 库写入 parquet 文件中。这种方法有两个缺点:1)不可能将所有数据保存在内存中。2) 因为所有数据都在内存中,所以 parquet 文件的大小未知,并且写入后可能小于或大于 1 GB 或任何数量,并且失去了固定 parquet 大小的优势。
  2. 假设我们想在并行过程中进行排序,而不是实时和流式进行。这样,如果我们想使用parquet库,我们仍然会遇到必须将整个数据带到内存中进行排序的问题,这是不可能的。假设我们使用 Spark 这样的工具进行排序。本节我们给出的一个具体成本是集群资源用于排序,实际中每个数据都被写入两次。(一次 parquet 写入时间和一次排序)下一点是,即使我们跳过这两种情况,在对数据进行排序后,根据 parquet 文件中的其他列,该特定列的 parquet …

sorting apache-spark parquet parquet-mr

7
推荐指数
0
解决办法
3846
查看次数

在 Java 中将 Arrow 转换为 Parquet,反之亦然

我一直在寻找在 Java 中进行转换的方法,arrow反之亦然parquet

尽管 Python 库arrow完全支持上述转换,但我在 Java 中几乎找不到任何相同的文档。

arrow/parquet 有人在Java 库中遇到过这样的功能吗?

java parquet apache-arrow parquet-mr

5
推荐指数
1
解决办法
1968
查看次数