重命名 TableRow 属性名称
Posted
技术标签:
【中文标题】重命名 TableRow 属性名称【英文标题】:Rename TableRow Attribute Names 【发布时间】:2018-05-30 22:57:06 【问题描述】:我已从源 REST 端点读取 JSON,并正在写入 BigQuery 表。我想让 BigQuery 表属性更具可读性,即。从 src_lat 到 source_latitude 等...
我已经设法创建了一个符合目的的 TableSchema 定义,我的问题是如何将 TableRow 定义从源映射到新的目标属性?
【问题讨论】:
列可以在解析 JSON 时重新映射,也可以使用 hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/… 感谢您的反馈 我对这个很陌生,并且已经有 15 年没有编写 Java 代码了!这个挑战是我自己没有解析 JSON,而是使用预构建的方法来完成它。return Transport.getJsonFactory().fromString(input.replace("'", "\""), TableRow.class);
所以我希望它可以用生成的 参见JsonFactory.parse()
与https://developers.google.com/api-client-library/java/google-http-java-client/reference/1.20.0/com/google/api/client/json/CustomizeJsonParser 的组合...这允许自定义解析器,以便解析成具有不同字段名称的目标对象类。您必须extend CustomizeJsonParser
并实现handleUnrecognizedKey
方法,该方法正在为所有无法直接映射的字段键调用,然后正确地重新映射这些字段,例如。在switch
声明中。
也可以使用 Jackson Streaming API 重新映射字段,请参阅example。
【讨论】:
以上是关于重命名 TableRow 属性名称的主要内容,如果未能解决你的问题,请参考以下文章