问题标签 [parquet-mr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1045 浏览

python-2.7 - PySpark 使用统计信息写入 Parquet 二进制列 (signed-min-max.enabled)

我发现这张 apache-parquet 票https://issues.apache.org/jira/browse/PARQUET-686被标记为parquet-mr1.8.2 已解决。我想要的功能是在(或) 列min/max的镶木地板元数据中计算的。stringBINARY

并引用这是一封电子邮件https://lists.apache.org/thread.html/%3CCANPCBc2UPm+oZFfP9oT8gPKh_v0_BF0jVEuf=Q3d-5=ugxSFbQ@mail.gmail.com%3E 使用scala而不是pyspark作为示例:

我一直无法设置这个值pyspark(也许我把它设置在错误的地方?)


示例数据框

我尝试了几种不同的方法来设置此选项:

但是所有保存的 parquet 文件都缺少 BINARY 列的 ST/STATS。以下是其中一个 parquet 文件的元数据示例输出:


此外,基于此电子邮件链https://mail-archives.apache.org/mod_mbox/spark-user/201410.mbox/%3C9DEF4C39-DFC2-411B-8987-5B9C33842974@videoamp.com%3E和问题:Specify Parquet属性 pyspark

我尝试通过 pyspark 私有 API 潜入配置:

所以我仍然无法设置这个conf parquet.strings.signed-min-max.enabledparquet-mr或者它被设置了,但其他地方出了问题)

  1. 是否可以parquet-mr从 pyspark进行配置
  2. pyspark 2.3.x 是否支持 BINARY 列统计信息?
  3. 如何利用 PARQUET-686 功能为min/maxparquet 文件中的字符串列添加元数据?
0 投票
5 回答
22247 浏览

java - 安装镶木地板工具

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

我克隆了这个仓库: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

这就是我得到的:

在此处输入图像描述

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

0 投票
2 回答
8571 浏览

maven - 对 hdfs 中的文件使用镶木地板工具

我下载并构建了https://github.com/apache/parquet-mr的 parquet-1.5.0 。

我现在想在 hdfs 中的镶木地板文件上运行一些命令。我试过这个:

我得到了:

错误:无法找到或加载主类 parquet.tools.Main

0 投票
1 回答
3139 浏览

hadoop - hdfs中文件的行组大小如何设置?

我正在对 hdfs 中的块大小 (dfs.block.size) 和行组大小 (parquet.block.size) 进行一些实验。

我在 hdfs 中有大量数据,我想复制具有各种块大小和行组大小的数据以进行测试。我可以使用以下方法复制具有不同块大小的数据:

但只有 dfs.block.size 被改变。我正在验证hdfs dfs -stat块大小和parquet-tools meta行组大小。事实上,如果我用它替换parquet.block.sizeblah.blah.blah也有同样的效果。我什至进入 spark-shell 并parquet.block.size使用手动设置属性

我正在使用 hadoop 3.1.0。我parquet.block.size这里得到了属性名称。

这是我尝试输出的前 10 行

如您所见,TS(总大小)远大于 64MB(67108864 字节)

我目前的理论:

我在 spark-shell 中这样做:

所以也许是因为我的输入数据已经有 1034 个分区。我真的不确定。我的数据每行大约有 118 列。

0 投票
0 回答
890 浏览

apache-spark - 无法使用 where 子句过滤镶木地板文件....错误“不安全符号不稳定”

我无法提供镶木地板文件。

我有字符串的“family_id”和日期类型的“lastStagedTs”的数据框。即格式为 2018-11-30。

我正在尝试过滤如下所示的镶木地板文件,即选择大于 2018-11-23 的数据

当我在代码行上方运行时,出现以下错误:

0 投票
1 回答
2605 浏览

scala - 使用 AvroParquetWriter 将接收器连接到镶木地板文件未将数据写入文件

我正在尝试使用 AvroParquetWriter 将镶木地板文件编写为接收器。该文件已创建但长度为 0(未写入数据)。难道我做错了什么 ?无法弄清楚是什么问题

0 投票
1 回答
2695 浏览

hadoop - 如何在 Java/Scala 中将 parquet 模式转换为 avro

假设我在文件系统上有镶木地板文件。如何获取 parquet 架构并将其转换为 Avro 架构?

0 投票
1 回答
838 浏览

parquet - Parquet-mr java 库的文档

我需要使用 Parquet-mr 库在 Java 中以编程方式读取 Parquet 文件。我需要选择性地阅读几列并跳过其他列(例如,从 500 列中读取 3 列)。我似乎找不到任何关于如何做到这一点的文档。如果有的话,有人可以指点我吗?

0 投票
1 回答
835 浏览

java - 如何使用 parquet-mr 查询 parquet 文件?

我有一个存储在 AWS S3 中的镶木地板文件,我想查询它。我想检索某行数据,因为它等于一个值。几乎就像我在 SQL 中所做的那样:

SELECT * FROM file.parquet WHERE id = '1234';

我正在使用parquet-mr直接从 S3 将其加载到内存中并读取它并设置它AvroParquetReader以读取行。

我已经将每一行复制到一个 Map 中以便于查询,但是有没有更好的方法来做到这一点?的文档parquet-mr不是很好,大多数教程都使用不推荐使用的方法。

这是我所拥有的一些示例代码:

您可以使用reader.read()来获取文件中的下一行(这是我用来将其放入 a 的内容HashMap,但我找不到任何parquet-mr允许您在不将整个文件加载到内存的情况下查询文件的方法.

0 投票
1 回答
635 浏览

parquet-mr - java.lang.ClassCastException:可选的 int32 计数不是一个组

我想查看parquet文件的内容。我运行了以下命令,但出现错误java.lang.ClassCastException: optional int32 count is not a group

manu@manu-VirtualBox:~/parquet-mr/parquet-tools/target$ java -jar parquet-tools-1.12.0-SNAPSHOT.jar cat ~/test/part-00000-3d55da69-71e8-462f-a478-68363b7af1a1-c000.snappy.parquet

可能是什么问题?