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

标签 google-cloud-data-fusion cdap

我正在创建一个数据融合管道,以将 csv 数据从 GCS 加载到 BigQuery,对于我的用例,我需要创建属性宏并在运行时提供值。需要了解如何将架构文件作为宏传递到 BigQuery 接收器。 如果我只是将 json 架构文件路径传递给宏值,我会收到以下错误。

java.lang.IllegalArgumentException:无效架构:使用 JsonReader.setLenient(true) 接受第 1 行第 1 列格式错误的 JSON

最佳答案

目前无法将文件的内容用作宏值,尽管有一个 jira 打开类似的东西( https://issues.cask.co/browse/CDAP-15424 )。预计架构内容应设置为宏值。 UI 目前不能很好地处理这些类型的宏值 ( https://issues.cask.co/browse/CDAP-15423 ),因此我建议通过 REST 端点 ( https://docs.cdap.io/cdap/6.0.0/en/reference-manual/http-restful-api/preferences.html#H2290 ) 设置它,其中应用程序名称是管道名称。

或者,您可以通过编写如下所示的 Action 插件来使管道更加通用:

@Override
public void run(ActionContext context) throws Exception {
  String schema = readFileContents();
  context.getArguments().setArgument(key, schema);
}

该插件将是管道中的第一个阶段,并允许管道中的后续阶段使用 ${key} 作为将替换为实际架构的宏。

关于google-cloud-data-fusion - 如何在数据融合中将架构文件作为宏传递到 BigQuery 接收器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56272403/

相关文章:

google-cloud-platform - Google Cloud Data Fusion 的权限问题

google-cloud-platform - Google数据融合执行错误 "INVALID_ARGUMENT: Insufficient ' DISKS_TOTAL_GB'配额。请求 3000.0,可用 2048.0。”

google-cloud-data-fusion - 如何编辑已发布的 Cloud Data Fusion Pipeline

cdap - 如何在Wrangler中使用自定义变换?

google-cloud-data-fusion - 在云数据融合中使用多字符定界符

hadoop - 用于从 Sftp 服务器读取数据的 CDAP Source 插件

google-cloud-platform - Cloud Data Fusion storagebucketslist 权限问题

google-cloud-data-fusion - 云数据融合牧马人停留在启用状态

google-cloud-platform - 将 BigQuery 作为源连接到另一个 GCP 项目中的 Data Fusion