问题标签 [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.
parquet - 如何在模式中使用 Parquet UUID 逻辑类型
最近,parquet-format项目添加了一个 UUID 逻辑类型。具体来说,这是在镶木地板格式的修订版 2.4中添加的。我有兴趣在 Java 中使用parquet-mr库来创建一些 parquet 文件,但我似乎无法弄清楚如何在 parquet 模式中使用 UUID 逻辑类型。像这样的简单模式似乎并不像我希望的那样工作:
我在这个模式上尝试了很多变体,到目前为止还没有设法让它用MessageTypeParser.parseMessageType方法解析。这是 parquet-mr 库的错误还是限制?还是我只是错误地格式化了我的架构?谢谢!
google-bigquery - 扫描 parquet 联合表时出现 INT32 类型错误。错误或预期行为?
我正在使用 BigQuery 查询外部数据源(也称为联合表),其中源数据是存储在 google 云存储中的 hive 分区 parquet 表。我使用本指南来定义表格。
我测试此表的第一个查询如下所示
此查询失败并出现以下错误
列 visitor_partition 的类型为 INT64,与预期的 INT32 类型不同
我想知道为什么会发生此错误以及如何解决或解决它。我使用该parquet-tools
库进行了一些调查,以窥探我的镶木地板数据的内部结构。
当我运行java -jar ./parquet-tools-1.10.0.jar meta test.c000.gz.parquet | grep visitor_partition
我的一个镶木地板文件时,将返回以下相关行
当我运行架构命令时,会出现以下相关架构信息optional int64 visitor_partition;
所以很明显,在这个 parquet 文件中,该visitor_partition
字段的数据表示为 INT64。那么为什么 BigQuery 期望在这里看到 INT32 类型呢?
apache-spark - 重复数据的 Parquet 存储大小更高
我有一个数据集,其中包含近 20 亿行镶木地板格式,包含 200 个文件。它在 S3 上占用 17.4GB。该数据集有接近 45% 的重复行。我使用 Spark 中的“distinct”函数对数据集进行了重复数据删除,并将其写入 S3 上的不同位置。
我预计数据存储将减少一半。相反,去重数据占用了 34.4 GB(重复数据的两倍)。
我检查了这两个数据集的元数据。我发现重复数据和去重数据的列编码存在差异。
我想了解如何获得减少存储大小的预期行为。
话虽如此,我还有几个问题:
- 我还想了解这种异常是否会以任何方式影响性能。在我的过程中,我必须在这些列上应用大量过滤器并
distinct
在保留过滤数据的同时使用函数。 - 我在网上的一些镶木地板博客中看到,一列的编码只是一个。在这种情况下,我看到不止一个列编码。这是正常的吗?
java - Hadoop S3A 文件系统,中止对象上传?
我有类似的代码
如果validate
抛出异常,我想释放与作者关联的所有资源。但在这种情况下,我不想在 S3 中创建任何对象。这是可以实现的吗?
如果我关闭编写器,它将结束 s3 分段上传并在云中创建一个对象。如果我不关闭它,到目前为止写入的部分将保留在磁盘缓冲区中,从而阻塞工作。
maven - 由于 relativePath,在镶木地板工具上构建失败
我想在 Docker 中获得 parquet-tools。它需要建造。但失败并显示以下错误消息。
我试试这个,但没有奏效。互联网连接很好。并尝试另一台计算机,重现它。
这个问题可能是pom的relativePath。Maven 无法读取父 POM 并引发错误。
这是重现错误环境的 Dockerfile。
谁能帮我?
cloudera - 我需要哪个“JAR”文件才能在 Scala 中导入“org.apache.parquet”?
当我尝试这个时:
它出错了:
问题- 我需要在 spark conf 中包含哪个 jar 才能使此导入生效?
请注意,这很好用:
我可以访问的 CDH 罐子:
java - ParquetFileReader 导致太多 TCP 连接处于 CLOSE_WAIT 状态
我正在尝试从镶木地板文件中读取元数据信息:
此行在CLOSE_WAIT
-state 中打开一个连接(使用lsof -p pid
命令检查)。
在超过 65,536 个文件上,它返回“打开的文件太多”-错误(因此需要重新启动我的应用程序)。我尝试替换为:
但仍然面临一个问题。我已经尝试过版本为 1.8.1、1.10.1、1.11.1 的 parquet-hadoop jar,但每个版本都面临问题。
python - parquet-tools 无法读取 zstd 文件但可以读取 gzip?
我安装了最新版本的parquet-tools
fromapache-mr
和 version parquet-tools-1.8.2.jar
。
这是一个可重现的示例:
我aws s3 cp
得到了 parquet 文件并试图parquet-tools head
在它上面运行,但是得到了:
但是,对 gzip 压缩文件执行相同的命令会给我:
这是 zstd 压缩或 parquet-tools 的错误吗?还是我没有在某处阅读细则?
注意:我parquet-tools
的别名为java -jar .../parquet-tools-1.8.2.jar
pyspark - Hive 插入创建与 Spark 插入不同的镶木地板
我正在使用 hdp 2.6.5.0-292。
在这种环境中,数据正在使用 Hive 和 pyspark 进行处理。
使用 SQL 插入,例如:
正在创建镶木地板 1.8.1,而 pyspark 数据框插入:
正在提供 1.6.0。
我们如何才能同时制作 1.8.1?
请帮助解决此问题。
这是我的节目创建表的样子:
创建外部表 abc.xyz( ...) 分区(运行日期字符串)行格式 SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 存储为输入格式 'org.apache.hadoop.hive .ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat' LOCATION 'hdfs://...' TBLPROPERTIES ('spark.sql.create.version'=' 2.2 或之前版本'、'spark.sql.sources.schema.numPartCols'='1'、'spark.sql.sources.schema.numParts'='1'、'spark.sql.sources.schema.part.0' ='{...}', 'spark.sql.sources.schema.partCol.0'='run_date', 'transient_lastDdlTime'='1608546154')
java - 从 Java 中的字节数组(例如 parquet 文件的内容,例如 example.parquet)中提取 Parquet 模式?
我有一个字节数组,它是镶木地板文件的内容。
如何提取镶木地板文件的架构,但 1)不写入新文件然后再次读取它,2)不使用 Spark?
输入(csv格式的输入parquet文件的示例内容):
预期输出(我想得到类似下面的东西):