google-cloud-data-fusion - 数据融合中的数组问题

标签 google-cloud-data-fusion

我目前正在通过 Data Fusion 将 MongoDB 数据库集成到 BigQuery 中,但我遇到了数组对象的问题。 Data Fusion 似乎不理解或不支持此类数据类型。然而,这似乎是我可以使用的一项功能,这就是我感到困惑的地方。我举一个基于一行数据的例子。

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

这是我在 Data Fusion 中的工作流程

enter image description here

这是我在 wrangler 中生成的输出模式(出于测试目的,我只添加了名称): enter image description here

我将此架构传播到 BigQuery 中,这是我遇到的错误:

Spark program 'phase-1' failed with error: null.

很明显,在 Data Fusion 中有一个使用数组的选项,但似乎有什么问题,我不知道是什么。我已经测试了每一种可能性或组合,但我无法取得任何积极的结果。

给出任何合理错误的替代方法是: enter image description here

这会返回以下错误:

Spark program 'phase-1' failed with error: Unable to decode array 'items'

也许我需要在 Data Fusion 中添加一些指令或其他插件,但老实说,我的想法已经用完了。我很乐意就此事提出任何建议。

最佳答案

wrangler 在处理嵌套数组/记录时遇到问题,无法使其正常工作。我的建议是,使用 JS 转换来处理数据并生成正确的 json 结构以加载到 bigquery。

一行中将来自gcs的所有数据发送到js转换并拆分/解析json,生成一个你想发送到BQ接收器的对象。我还没有处理它的数据,但我想由于 wrangler 的限制,这将是一种解决方法。

enter image description here

关于google-cloud-data-fusion - 数据融合中的数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71613232/

相关文章:

google-cloud-data-fusion - 如何在数据融合中将架构文件作为宏传递到 BigQuery 接收器

rds - 白名单 AWS RDS 与 Google Cloud Data Fusion 的连接

mysql - 部署Cloud Data Fusion "Transfer Data From MySQL to Google BigQuery"模板管道失败

google-cloud-platform - Google Data Fusion 能否进行与 DataPrep 相同的数据清理?

postgresql - 尝试连接到 Cloud SQL 实例时收到 403

google-cloud-data-fusion - Google Cloud Data Fusion 1. 无法连接到 oracle 2. 当管道运行时,出现 'default' 网络端口错误

google-cloud-data-fusion - 如果我使用 BigQuery 插件,BigQuery View 将无法工作

google-cloud-data-fusion - 数据融合中的管道依赖

google-bigquery - 使用 Google Cloud Data Fusion 执行自定义 SQL 查询

google-cloud-platform - 云数据融合与 Dataproc