我目前正在通过数据融合将MongoDB数据库集成到BigQuery中,并且我面临数组对象的问题。数据融合似乎不理解或支持这样的数据类型。然而,这似乎是我可以使用的一个特性,这里是我感到困惑的地方。让我给你一个基于一行数据的例子。
Order_number, items
43324 [{"name":"x","price":"10"},{"name":"y","price":"20"}]根据我一直在测试的内容,我唯一能做的(起作用的)事情是平放条目,然后将其解析为json,并获得这样的结果:
Order_number, items_name, items_price
43324 x 10
43324 y 20但是,我试图避免重复订单号,并希望将项目保留为数组,以便在一行中得到这样的结果:
Order_number, items_name, items_price
43324 x 10
y 20这是我在数据融合中的工作流程

下面是在wrangler中生成的输出模式(我只为测试目的添加了名称):

我将这个模式传播到BigQuery中,下面是一个错误:
Spark program 'phase-1' failed with error: null.所以很明显,在数据融合中可以选择使用数组,但是有些东西似乎已经过时了,我不知道是什么原因。我已经测试了每一个可能性或组合,我无法取得任何积极的结果。
造成任何合理错误的另一种办法是:

这将返回以下错误:
Spark program 'phase-1' failed with error: Unable to decode array 'items'也许我需要在数据融合中添加一些指令或其他插件,但老实说,我的想法已经没有了。我愿意接受关于这件事的任何建议。
发布于 2022-03-25 16:17:04
wrangler在处理嵌套数组/记录时遇到问题,无法使其工作。我的建议是,使用JS转换来处理数据,并生成要加载到bigquery上的正确的json结构。
将one line中的gcs中的所有数据发送到js转换,然后拆分/解析json,生成一个对象,就像您想要发送到BQ接收器的那样。我还没有处理关于它的数据,但我认为这将是一个解决办法,因为争吵者的限制。

https://stackoverflow.com/questions/71613232
复制相似问题