PARSER - 在 spark 中从 hdfs 加载数据时出现 Nosuchfield 错误

时间:2021-06-24 13:21:20

标签: java apache-spark

我正在尝试运行以下代码。对我来说,这主要是一个依赖问题。

    Dataset<Row> ds = spark.read().parquet("hdfs://localhost:9000/test/arxiv.parquet");

我收到以下错误:

Exception in thread "main" java.io.IOException: com.google.protobuf.ServiceException: java.lang.NoSuchFieldError: PARSER
    at org.apache.hadoop.ipc.ProtobufHelper.getRemoteException(ProtobufHelper.java:71)

我添加了对 apache hadoop common 的依赖。 有人可以指出代码可能存在的问题吗?

1 个答案:

答案 0 :(得分:0)

第一篇文章,我不知道我这样做是否正确,虽然遇到了同样的问题,但我添加了一堆依赖项,直到它解决了问题。我会给你一个清单,我真的不知道哪些是真正需要的:

libraryDependencies += "org.apache.parquet" % "parquet-hadoop" % "1.11.0"
libraryDependencies += "org.apache.parquet" % "parquet-avro" % "1.11.0"
libraryDependencies += "org.apache.parquet" % "parquet-encoding" % "1.11.0"
libraryDependencies += "org.apache.parquet" % "parquet-column" % "1.11.0"
libraryDependencies += "org.apache.parquet" % "parquet-common" % "1.11.0"
libraryDependencies += "org.apache.parquet" %% "parquet-scala" % "1.11.0"
libraryDependencies += "org.apache.parquet" % "parquet-hadoop-bundle" % "1.11.0"
libraryDependencies += "org.apache.hadoop" % "hadoop-hdfs" % "3.3.1" % Test
libraryDependencies += "org.apache.hadoop" % "hadoop-client" % "3.3.1"
相关问题