从目录读取Spark Spark空Json文件

时间:2018-08-14 16:49:11

标签: scala apache-spark databricks

我正在从说/ json / / myfiles _ .json

的路径读取

然后使用explode展平json。由于我有一些空文件,因此会导致错误。如何告诉它忽略空文件,以某种方式将其过滤掉?

我可以检测单个文件,检查磁头是否为空,但是我需要使用通配符路径对在数据框中迭代的文件集合进行此操作。

2 个答案:

答案 0 :(得分:0)

您能详细说明一下吗?也许分享您的代码和文件结构。

即使目录中有空文件,它也不会影响dataFrame。

答案 1 :(得分:0)

所以答案似乎是我需要显式提供一个架构,因为它不能像您期望的那样从空文件中推断出一个!

例如

val schemadf = sqlContext.read.json(schemapath) //infer schema from file with data or do manually
val schema = schemadf.schema
val raw = sqlContext.read.schema(schema).json(monthfile)

val prep = raw.withColumn("MyArray", explode($"MyArray"))
  .select($"ID", $"name", $"CreatedAt")

display(prep)