我已经成功地做到了这一点,但没有数据分类器。我的 JSON 文件如下所示:
[
{
"col1": "data_from_col1",
"col2": "data_from_col2",
"col3": [
{
"col4": "data_from_col4",
...
{
]
},
{
"col1": "data_from_col1",
"col2": "data_from_col2",
"col3": [
{
"col4": "data_from_col4",
...
{
]
},
...
]
我开始使用爬虫来获取基本的表定义。重要提示:不能将输出下的爬虫配置选项设置为更新表定义...,否则稍后重新运行爬虫将覆盖下面描述的手动更改。我只使用了添加新列。
我必须添加“strip.outer.array”属性并在我的匿名数组中手动添加最顶层的列。初始爬虫运行的原始架构是:
anon_array array<struct<col1:string,col2:string,col3:array<struct<col4...>>>
partition_0 string
我手动将我的架构更新为:
col1:string
col2:string
col3:array<struct<col4...>>
partition_0 string
(并且还要添加 serde 参数 strip.outer.array。)
然后我不得不重新运行我的爬虫,最后我可以像这样在 Spectrum 中查询:
select o.partition_0, o.col1, o.col2, t.col4
from db.tablename o
LEFT JOIN o.col3 t on true;