如何读取包含 JSON 文件的文件夹的目录:Spark Scala
Posted
技术标签:
【中文标题】如何读取包含 JSON 文件的文件夹的目录:Spark Scala【英文标题】:How to read Directory with folders containing JSON files : Spark Scala 【发布时间】:2016-07-05 14:42:50 【问题描述】:我在从目录(带有 json 文件的文件夹)读取时不断获取此文件。我用过:
// sc : An existing SparkContext.
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val df = sqlContext.jsonFile("s3://testData")
df.show()
错误:
java.io.IOException: No input paths specified in job
at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:173)
at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:279)
at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:207)
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)
at scala.Option.getOrElse(Option.scala:120) at org.apache.spark.rdd.RDD.partitions(RDD.scala:237)
at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35)
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)
at scala.Option.getOrElse(Option.scala:120)
at org.apache.spark.rdd.RDD.partitions(RDD.scala:237)
at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35)
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)
at scala.Option.getOrElse(Option.scala:120)
at org.apache.spark.rdd.RDD.partitions(RDD.scala:237)
at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35)
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)
at scala.Option.getOrElse(Option.scala:120)
我的文件系统看起来像:
testData - 有 3 个文件夹(00、01、02)的目录,每个文件夹有 1 个文件/文件夹
testData/00/temp1.json.gz
testData/01/temp2.json.gz
testData/02/temp3.json.gz
我用的是spark 1.5,我的阅读方式有什么问题吗?
【问题讨论】:
你知道在 Quora 上向我发送匿名请求不会让我想回答这个问题。 quora.com/unanswered/… 【参考方案1】:效率不高但你可以sqlContext.jsonFile("s3://testData/*/*")
【讨论】:
为什么效率不高? @Ilya_Gazman tech.kinja.com/…以上是关于如何读取包含 JSON 文件的文件夹的目录:Spark Scala的主要内容,如果未能解决你的问题,请参考以下文章
python - 如何在python中附加一个列表时处理异常,其中包含从存储从.json文件读取的数据的dict读取的数据?
boost::property_tree::json_parser::read_json 如果路径包含西里尔字符则无法读取文件