BigQuery,TableRow:使用Java API访问重复的记录
作者:互联网
我正在通过Java API和新服务Dataflow访问BigQuery数据.我希望TableRow类具有以下方法:
>返回TableCell实例的列表(在重复字段的情况下)
>返回一个TableRow实例(如果是嵌套字段)
>返回TableRow实例的列表(如果重复嵌套字段)
但是我只能使用get方法找到访问TableRow实例的字段的示例代码,这不方便,因为输出是Object类的实例.
我目前看到的唯一解决方案是解析从get方法获得的字符串并自行构建TableRow对象,但我想知道是否有人可以共享更好的解决方案?
非常感谢.
解决方法:
最后我得出以下结论:
>如果根据您的模式期望一个重复的字段,则应用于TableRow实例的get方法将返回一个ArrayList实例.
>如果根据您的模式期望记录,则应用于TableRow实例的get方法将返回LinkedHashMap的实例.
>正如您猜想的那样,如果根据您的模式期望记录的重复字段,则应用于TableRow实例的get方法将返回ArrayList的实例.
因此,您只需要使用上述类之一将应用到TableRow实例的get方法的结果向下转换,然后可以充分利用它们的功能(例如,通过名称进行迭代和调用).
标签:google-bigquery,java,google-cloud-dataflow 来源: https://codeday.me/bug/20191120/2045205.html