[
https://issues.apache.org/jira/browse/BEAM-6769?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16791871#comment-16791871
]
Valentyn Tymofieiev commented on BEAM-6769:
-------------------------------------------
> The current test in python 2 does not work when trying to write
> b'\xab\xac\xad' to bigquery
Note that on Python 2, we can't really distinguish between a binary string and
a non-binary non-unicode string, so BQ IO on Python 2 may require certain
restrictions on the strings, so that it can feed them to BQ Apitools client?
I wonder if we understand those restrictions and if they are documented.
Also I am wondering how does BQ IO handle unicode on Python 2. We need to
understand and document any potential differences in treatment of
strings/unicode in Beam IO between Py2 and Py3 and document them for the users
who transition to use Beam on Python 3.
> 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: Major
> Time Spent: 50m
> 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)