Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id EBE2D200D4F for ; Tue, 31 Oct 2017 18:44:04 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id EAC271609E6; Tue, 31 Oct 2017 17:44:04 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 34C0C160BFA for ; Tue, 31 Oct 2017 18:44:04 +0100 (CET) Received: (qmail 41051 invoked by uid 500); 31 Oct 2017 17:44:03 -0000 Mailing-List: contact commits-help@beam.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@beam.apache.org Delivered-To: mailing list commits@beam.apache.org Received: (qmail 41036 invoked by uid 99); 31 Oct 2017 17:44:03 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 31 Oct 2017 17:44:03 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 83A9D1A38E5 for ; Tue, 31 Oct 2017 17:44:02 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -99.202 X-Spam-Level: X-Spam-Status: No, score=-99.202 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, USER_IN_WHITELIST=-100] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id zuAa40P2ga-1 for ; Tue, 31 Oct 2017 17:44:01 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id 27F405FD38 for ; Tue, 31 Oct 2017 17:44:01 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 9F549E095C for ; Tue, 31 Oct 2017 17:44:00 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id 5ED17212FB for ; Tue, 31 Oct 2017 17:44:00 +0000 (UTC) Date: Tue, 31 Oct 2017 17:44:00 +0000 (UTC) From: "Leonardo Alves Miguel (JIRA)" To: commits@beam.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Comment Edited] (BEAM-2767) BigQueryIO result different for REPEATED field between DirectRunner and DataflowRunner MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Tue, 31 Oct 2017 17:44:05 -0000 [ https://issues.apache.org/jira/browse/BEAM-2767?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16227183#comment-16227183 ] Leonardo Alves Miguel edited comment on BEAM-2767 at 10/31/17 5:43 PM: ----------------------------------------------------------------------- I had the same issue reported by [~jroxtheworld]. I'm using nested TableRows, doing something like: TableRow a = new TableRow(); TableRow b = new TableRow(); a.set("fieldName", b); Then, after applying some other PTransforms that does not change this field, I tried doing something like: TableRow c = (TableRow) a.get("fieldName); Running it in DataflowRunner works fine, but when I run it using DirectRunner, I get the following exception: *"java.lang.ClassCastException: java.base/java.util.LinkedHashMap cannot be cast to com.google.api.services.bigquery.model.TableRow"* It looks like some internal data type for TableRow is different in Direct and Dataflow runner. was (Author: leonardoam94): I had the same issue reported by [~jroxtheworld]. I'm using nested TableRows, doing something like: TableRow a = new TableRow(); TableRow b = new TableRow(); a.set("fieldName", b); Then, after applying some other PTransforms that does not change this field, I tried doing something like: TableRow c = (TableRow) a.get("fieldName); Running it in DataflowRunner works fine, but when I run it using DirectRunner, I get the following exception: "java.lang.ClassCastException: java.base/java.util.LinkedHashMap cannot be cast to com.google.api.services.bigquery.model.TableRow" It looks like some internal data type for TableRow is different in Direct and Dataflow runner. > BigQueryIO result different for REPEATED field between DirectRunner and DataflowRunner > -------------------------------------------------------------------------------------- > > Key: BEAM-2767 > URL: https://issues.apache.org/jira/browse/BEAM-2767 > Project: Beam > Issue Type: Bug > Components: runner-dataflow, runner-direct, sdk-java-gcp > Affects Versions: 2.0.0 > Reporter: Andre > Assignee: Thomas Groh > Priority: Minor > > When running a query against BigQueryIO with a REPEATED RECORD field the behavior is different between DirectRunner and DataflowRunner. The field containing the repeated record has to be cast to access the records. Apparently the following implementations work for each runner but I would expect them to be the same as my pipeline otherwise only runs on one. > DirectRunner: > {code:java} > ArrayList orderLines = (ArrayList) c.element().get("RepeatedField"); > {code} > DataflowRunner: > {code:java} > ImmutableList orderLines = (ImmutableList) c.element().get("RepeatedField"); > {code} > > For example when using the ImmutableList implementation on DirectRunner the following exception is thrown: > {code:java} > java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.google.common.collect.ImmutableList > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)