java - Apache Parquet 无法读取页脚 : java. io.IOException:

标签 java hadoop io apache-spark parquet

我有一个在 Cloudera VM 上运行的 SPARK 项目。在我的项目中,我从 parquet 文件加载数据,然后处理这些数据。一切正常,但问题是我需要在学校集群上运行这个项目,但在这部分代码中读取 Parquet 文件时遇到问题:

DataFrame schemaRDF = sqlContext.parquetFile("/var/tmp/graphs/sib200.parquet");

我收到以下错误:

Could not read footer: java.io.IOException: Could not read footer for file FileStatus{path=file:/var/tmp/graphs/sib200.parquet/_common_metadata; isDirectory=false; length=413; replication=0; blocksize=0; modification_time=0; access_time=0; owner=; group=; permission=rw-rw-rw-; isSymlink=false} at parquet.hadoop.ParquetFileReader.readAllFootersInParallel(ParquetFileReader.java:248) at org.apache.spark.sql.execution.datasources.parquet.ParquetRelation$$anonfun$28.apply(ParquetRelation.scala:750)

网上查了一下,好像是parquet版本的问题。

我想从您那里得到的是告诉我如何在计算机中找到已安装的 parquet 版本,以便检查两者是否具有相同的版本。或者另外,如果您知道此错误的确切解决方案也将是完美的!

最佳答案

我在尝试从 S3 读取 Parquet 文件时遇到了同样的问题。在我的例子中,问题是集群中的所有工作人员都无法使用所需的库。

有两种方法可以解决这个问题:

  • 确保您在 spark-submit 命令上添加了依赖项,以便将其分发到整个集群
  • 为集群中的每个工作人员添加对 SPARK_HOME 上/jars 目录的依赖项。

关于java - Apache Parquet 无法读取页脚 : java. io.IOException:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34814082/

相关文章:

c++ - g++ 输出与 Visual Studio 输出之间的差异。 float 变量

java - 栈是堆中的逻辑内存区域吗?

json - 将复杂的Json数据导入hive

hadoop - 命名空间存储在hadoop中的什么位置?

c - 当主循环在 Gstreamer 中运行时,如何从控制台(stdin)读取并执行用户命令?

c - 如何从c中的文本输入中分割字符串

java - 使用 sardine 从 java 应用程序访问 sharepoint 网站

java - 在 Java 1.5 中将非泛型列表类型转换为泛型列表类型

java - 在jsplitpane中的jscrollpane中调整 Canvas 大小问题

hadoop - hive有数据字典吗?