相关疑难解决方法(0)

如何从镶木地板文件中获取架构/列名称?

我有一个存储在HDFS中的文件 part-m-00000.gz.parquet

我试图运行,hdfs dfs -text dir/part-m-00000.gz.parquet但它已经压缩,所以我运行gunzip part-m-00000.gz.parquet但它没有解压缩文件,因为它无法识别.parquet扩展名.

如何获取此文件的架构/列名称?

hadoop apache-pig hdfs parquet

22
推荐指数
4
解决办法
4万
查看次数

如何在Windows中查看Apache Parquet文件?

我找不到关于Apache Parquet文件的任何简单的英文解释.如:

  1. 这些是什么?
  2. 我是否需要Hadoop或HDFS来查看/创建/存储它们?
  3. 如何创建镶木地板文件?
  4. 如何查看镶木地板文件?

有关这些问题的任何帮助表示赞赏.

.net java bigdata parquet

16
推荐指数
6
解决办法
3万
查看次数

如何在没有缓冲的情况下使用 parquet-cpp 编写流式/面向行的数据?

我的 C++ 应用程序基本上有面向行的/流数据 (Netflow),我想将数据写入 Parquet-gzip 文件。

查看parquet-cpp项目中的示例reader-writer.cc程序,看来我只能以柱状方式将数据喂给parquet-cpp:

constexpr int NUM_ROWS_PER_ROW_GROUP = 500;
...
// Append a RowGroup with a specific number of rows.
parquet::RowGroupWriter* rg_writer = file_writer->AppendRowGroup(NUM_ROWS_PER_ROW_GROUP);

// Write the Bool column
for (int i = 0; i < NUM_ROWS_PER_ROW_GROUP; i++) {
   bool_writer->WriteBatch(1, nullptr, nullptr, &value);
}
// Write the Int32 column
...
// Write the ... column
Run Code Online (Sandbox Code Playgroud)

这似乎意味着我需要自己缓冲 NUM_ROWS_PER_ROW_GROUP 行,然后循环遍历它们,将它们一次传输到 parquet-cpp 一列。我希望有更好的方法,因为这似乎效率低下,因为数据需要复制两次:一次进入我的缓冲区,然后在一次将数据输入 parquet-cpp 一列时再次复制。

有没有办法将每一行的数据放入 parquet-cpp 而不必先缓冲一堆行?Apache Arrow 项目(parquet-cpp 使用)有一个教程,展示了如何将行数据转换为 Arrow 表。对于每一行输入数据,代码附加到每个列构建器:

for (const data_row& …
Run Code Online (Sandbox Code Playgroud)

c++ parquet

2
推荐指数
1
解决办法
3390
查看次数

标签 统计

parquet ×3

.net ×1

apache-pig ×1

bigdata ×1

c++ ×1

hadoop ×1

hdfs ×1

java ×1