我想在不解析的情况下将Json文件读取为Json。我不想使用数据框,我只想将其读取为格式不变的常规文件。 任何想法 ?我尝试使用wholtextfile进行阅读,但这会创建df。
答案 0 :(得分:0)
我已经注意到您指定了apache-spark标签,如果您对香草scala表示某种含义,则此答案将不适用。使用此代码,您可以获得RDD[String]
,它是分布式数据结构中最文本样式的类型。
// Where sc is your spark context
> val textFile = sc.textFile("myFile.json")
textFile: org.apache.spark.rdd.RDD[String]
答案 1 :(得分:0)
由于您不接受具体的火花答案,也许您可以尝试使用像这样的普通scala解决方案(使用spray-json库):
import spray.json._
val source = scala.io.Source.fromFile("yourFile.txt")
val lines = try source.mkString finally source.close()
val yourJson = lines.parseJson
答案 2 :(得分:0)
upickle 库是读取 JSON 文件的最简单的“纯 Scala”方式:
val jsonString = os.read(os.pwd/"src"/"test"/"resources"/"phil.json")
val data = ujson.read(jsonString)
data.value // LinkedHashMap("first_name" -> Str("Phil"), "last_name" -> Str("Hellmuth"), "birth_year" -> Num(1964.0))
有关详细信息,请参阅 this post。
上面的代码片段使用 os-lib 从磁盘读取文件。如果您在集群环境中运行代码,您可能需要使用不同的库。这取决于文件所在的位置和您的环境。
避免使用其他 Scala JSON 库,因为它们很难使用。