使用spark读取Multilple json模式
软件配置:使用spark读取Multilple json模式,json,scala,amazon-web-services,hadoop2,amazon-emr,Json,Scala,Amazon Web Services,Hadoop2,Amazon Emr,软件配置: Hadoop distribution:Amazon 2.8.3 Applications:Hive 2.3.2, Pig 0.17.0, Hue 4.1.0, Spark 2.3.0 尝试使用多个json架构进行读取 val df=spark.read.option(“合并架构”, “true”).json(“s3a://s3bucket/2018/01/01/*”) 抛出一个错误 org.apache.spark.sql.AnalysisException: Unable to
Hadoop distribution:Amazon 2.8.3
Applications:Hive 2.3.2, Pig 0.17.0, Hue 4.1.0, Spark 2.3.0
尝试使用多个json架构进行读取
val df=spark.read.option(“合并架构”,
“true”).json(“s3a://s3bucket/2018/01/01/*”)
抛出一个错误
org.apache.spark.sql.AnalysisException: Unable to infer schema for JSON. It must be specified manually.;
at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$9.apply(DataSource.scala:207)
at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$9.apply(DataSource.scala:207)
at scala.Option.getOrElse(Option.scala:121)
at org.apache.spark.sql.execution.datasources.DataSource.getOrInferFileFormatSchema(DataSource.scala:206)
at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:392)
at org.apache.spark.sql.DataFrameReader.loadV1Source(DataFrameReader.scala:239)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:227)
at org.apache.spark.sql.DataFrameReader.json(DataFrameReader.scala:397)
at org.apache.spark.sql.DataFrameReader.json(DataFrameReader.scala:340)
如何使用spark读取多个模式的json?当您指向错误路径时(当数据不存在时),有时会发生这种情况。一般来说,使用多个模式读取json不会有任何问题(您甚至不需要mergeSchema选项,它与拼花有关)。你能分享关于你的场景的更多细节吗?因为我无法重现这个错误,即使是在读取带有非常冲突的模式的json时。另外,你是否尝试在本地运行它,你是否得到了相同的错误?是的,我得到了。如果针对不同的模式运行,则会出现相同的错误。它适用于拼花文件。