[ https://issues.apache.org/jira/browse/BEAM-6769?focusedWorklogId=250473&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-250473 ]
ASF GitHub Bot logged work on BEAM-6769: ---------------------------------------- Author: ASF GitHub Bot Created on: 29/May/19 20:35 Start Date: 29/May/19 20:35 Worklog Time Spent: 10m Work Description: tvalentyn commented on pull request #8621: [BEAM-6769][BEAM-7327] add it test for writing and reading with bigqu… URL: https://github.com/apache/beam/pull/8621#discussion_r288756625 ########## File path: sdks/python/apache_beam/io/gcp/bigquery_file_loads_test.py ########## @@ -83,6 +84,23 @@ _ELEMENTS = list([json.loads(elm[1]) for elm in _DESTINATION_ELEMENT_PAIRS]) +class CustomRowCoder(coders.Coder): + """ + Custom row coder that also expects strings as input data when encoding + """ + + def __init__(self): + self.coder = bigquery_tools.RowAsDictJsonCoder() + + def encode(self, table_row): + if type(table_row) == str: + table_row = json.loads(table_row) + return self.coder.encode(table_row) + + def decode(self, encoded_table_row): + return self.coder.decode(encoded_table_row) + + Review comment: Please take a look at https://github.com/apache/beam/pull/8621#discussion_r287935702 - and let us know if you think we should do something else here. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking ------------------- Worklog Id: (was: 250473) Time Spent: 20h 10m (was: 20h) > BigQuery IO does not support bytes in Python 3 > ---------------------------------------------- > > Key: BEAM-6769 > URL: https://issues.apache.org/jira/browse/BEAM-6769 > Project: Beam > Issue Type: Sub-task > Components: sdk-py-core > Reporter: Juta Staes > Assignee: Juta Staes > Priority: Blocker > Fix For: 2.14.0 > > Time Spent: 20h 10m > Remaining Estimate: 0h > > In Python 2 you could write bytes data to BigQuery. This is tested in > > [https://github.com/apache/beam/blob/master/sdks/python/apache_beam/io/gcp/big_query_query_to_table_it_test.py#L186] > Python 3 does not support > {noformat} > json.dumps({'test': b'test'}){noformat} > which is used to encode the data in > > [https://github.com/apache/beam/blob/master/sdks/python/apache_beam/io/gcp/bigquery_tools.py#L959] > > How should writing bytes to BigQuery be handled in Python 3? > * Forbid writing bytes into BigQuery on Python 3 > * Guess the encoding (utf-8?) > * Pass the encoding to BigQuery > cc: [~tvalentyn] -- This message was sent by Atlassian JIRA (v7.6.3#76005)