我有很多钱 JSON
我需要转换成的文件 Parquet
. 它们看起来像这样:
{
"foo": "bar",
"props": {
"prop1": "val1",
"prop2": "val2"
}
}
我需要把它们变成 Parquet
其结构是这样的文件(嵌套属性被设置为顶级并获取 _
作为后缀):
foo=bar
_prop1=val1
_prop2=val2
现在有个问题:不是所有的 JSON
文档具有相同的属性。所以,如果doc1 prop1
以及 prop2
,但doc2 prop3
,决赛 Parquet
文件必须具有这三个属性(对于某些记录,其中一些属性将为空)。
我明白 Parquet
需要一个 schema
所以我现在的计划是:
遍历所有 JSON
文件夹
推断 schema
每个文档(像这样使用kite)
合并所有 schemas
开始写 Parquet
这种方法给我的印象是非常复杂、缓慢而且容易出错。我想知道是否有更好的方法来实现这一点 Spark
.
1条答案
按热度按时间xmq68pz91#
原来spark已经帮你做了。当它读取json文档而您没有指定模式时,它将为您推断/合并它们。所以在我的情况下,像这样的方法是可行的: