如何基于多个 JSON 文件创建 DataFrame

Posted

技术标签:

【中文标题】如何基于多个 JSON 文件创建 DataFrame【英文标题】:How to create DataFrame based on multiple JSON files 【发布时间】:2018-02-02 13:23:52 【问题描述】:

我在一个文件夹中有很多 JSON 文件。它们都具有相同的结构。现在我要创建DataFrame,每个JSON文件都应该是这个DataFrame所在的行。

我知道如何基于单个 JSON 字符串创建 DataFrame,但我不知道如何处理多个:

import spark.implicits._
val jsonStr = """ "key": 111, "value": 54, stamp: "aaa""""
val df = spark.read.json(Seq(jsonStr).toDS)

【问题讨论】:

【参考方案1】:

假设您的 JSON 在文件夹 src/main/resources

以下代码将产生所需的结果:

  private val df: DataFrame = spark.read.json("src/main/resources")
  df.show()

+---+-----+-----+
|key|stamp|value|
+---+-----+-----+
|111|  aaa|   54|
|111|  aaa|   54|
+---+-----+-----+

请注意,JSON 应该是机器可读的,而不是人类可读的(这意味着 JSON 不应该有换行符。

【讨论】:

我应该为上面导入什么库? @Sade 它是 spark-sql 库中的类

以上是关于如何基于多个 JSON 文件创建 DataFrame的主要内容,如果未能解决你的问题,请参考以下文章

如何基于一个 Freemarker 模板创建多个文件

pandas一些基本操作(DataFram和Series)_3

Datafram 实现作为正文发送邮件

java如何创建Json文件?

如何在 appsettings.json 中使用多个单独的记录器 Serilog 文件

如何使用给定的reduce函数基于pyspark中的字段合并多个JSON数据行