Невозможно прочитать файлы паркета в spark: java .lang.NoSuchMethodError: org.json4s.jackson.JsonMethods - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь прочитать сжатый сжатый файл паркета, но продолжаю получать исключение ниже. Я не могу найти причину root для этого исключения. Может, кто-нибудь мне поможет?

   val sparkSession: SparkSession = SparkSession.builder()
  .master("local[2]")
  .config("spark.ui.enabled",false)
  .appName("local-intellij")
  .getOrCreate()
val df = sparkSession.read.parquet("C:\\data\\parquet\\part-00000-4ce5708f-2f50-485d-8ae4-7c5ea440fda6.c000.snappy.parquet")

Мои зависимости:

lazy val json4sVersion = "3.5.0"
lazy val json4sDeps = Seq(
"org.json4s" %% "json4s-core" % json4sVersion,
"org.json4s" %% "json4s-native" % json4sVersion,
"org.json4s" %% "json4s-ast" % json4sVersion,
"org.json4s" %% "json4s-jackson" % json4sVersion)
lazy val sparkVersionCore = "2.3.0.cloudera2"
lazy val sparkDeps = Seq(
"org.apache.spark" %% "spark-hive" % sparkVersionCore,
"org.apache.spark" %% "spark-core" % sparkVersionCore)

java .lang.NoSuchMethodError: org.json4s.jackson.JsonMethods $ .parse (Lorg / json4s / JsonInput; Z) Lorg / json4s / JsonAST $ JValue; в орг. apache .spark. sql .types.DataType $ .from Json (DataType. scala: 113) в орг. apache .spark. sql .execution.datasources.parquet. ParquetFileFormat $$ anonfun $ org $ apache $ spark $ sql $ выполнение $ источники данных $ parquet $ ParquetFileFormat $$ deserializeSchemaString $ 3.apply (ParquetFileFormat. scala: 650) в орг. apache .spark. sql .execution. datasources.parquet.ParquetFileFormat $$ anonfun $ org $ apache $ spark $ sql $ выполнение $ источники данных $ parquet $ ParquetFileFormat $$ deserializeSchemaString $ 3.apply (ParquetFileFormat. scala: 650) в scala .util.Try $ .apply (Попробуйте. scala: 192) в орг. apache .spark. sql .execution.datasources.parquet.ParquetFileFormat $ .org $ apache $ spark $ sql $ execute $ datasources $ parquet $ ParquetFileFormat $$ deserializeSchemaString ( ParquetFileFormat. scala: 650) в орг. apache .spark. sql .execution.datasources.parquet.ParquetFileFormat $$ anonfun $ readSchemaFromFooter $ 1.apply (ParquetFileFormat. scala: 643) в орг. apache .spark. sql .execution.datasources.parquet.ParquetFileFormat $$ anonfun $ readSchemaFromFooter $ 1.а pply (ParquetFileFormat. scala: 643)

1 Ответ

2 голосов
/ 01 мая 2020

несоответствие версии jar для версии 2.3.0 .

AFAIK вы должны использовать org.json4s json4s-jackson_2.11 3.2.11

// https://mvnrepository.com/artifact/org.json4s/json4s-jackson
libraryDependencies += "org.json4s" %% "json4s-jackson" % "3.2.11"

AFAIK эта запись не требуется, я думаю, она будет автоматически загружена, как только вы упомянете версию spark в sbt. Просто попробуйте удалить запись и посмотрите ... если она не работает, добавьте вышеупомянутую запись.

...