【发布时间】:2019-04-04 15:28:47
【问题描述】:
我有大量从第三方获得的 JSON 文件。它们都具有相同的架构,除了嵌套元素为空时,它表示为空数组。
第一个例子
{
....
"survey_data":
{
"2": { "question":"....", "answer_id":"....", .... },
"3": { "question":"....", "answer_id":"....", .... },
}
}
所以这是一个有效的 JSON,“survey_data”元素是一个 struct_type,但嵌套结构相当复杂(子元素比这个简化示例中的多)
但是,当survey_data没有嵌套元素时,它表示为空数组:
{
....
"survey_data": []
}
这显然在示意图上不兼容,但我无法影响这一点,因为数据来自第 3 方。
当我想将这些 JSON 文件作为单个数据帧加载到 spark 中时,spark 将survey_data 类型推断为字符串,并转义所有字符:
"survey_data":"{\"2\":{\"question\": ...
这显然对我不利,我看到了两种处理方法:
- 以某种方式将文件预处理为纯文本并删除 [] 字符?
- 使用 spark 删除数组字符,或者告诉 spark 该列应该是结构类型?
有人能提示我解决这个问题吗?
【问题讨论】:
标签: json apache-spark schema