【问题标题】:Problem loading ISO-8859-1 into BigQuery using DataFlow (Apache Beam)使用 DataFlow (Apache Beam) 将 ISO-8859-1 加载到 BigQuery 时出现问题
【发布时间】:2019-12-01 03:31:25
【问题描述】:

我正在尝试使用 DataFlow 将 ISO-8859-1 文件加载到 BigQuery。我用 Apache Beam Java 构建了一个模板。一切正常,但是当我检查 Bigquery 表的内容时,我发现一些字符,如 'ñ' 或重音符号 'á'、'é' 等没有正确存储,它们已存储为�。

在写入 BigQuery 之前,我尝试了几次字符集更改。另外,我创建了一个特殊的 ISOCoder,使用 setCoder() 方法传递给管道,但没有任何效果。

有谁知道是否可以使用 Apache Beam 将此类文件加载到 BigQuery 中?只有 UTF-8?

提前感谢您的帮助。

【问题讨论】:

  • 只是根据我的经验观察。我在西里尔字母И(唯一有问题的afaik)和字符集转换方面遇到了类似的问题。我实施了一种解决方法。在处理之前,我将 И 替换为唯一标记 RUSSIAN_I - 我需要确保在反向转换期间我不会破坏某些用户的文本。在java中处理之后,我使用正则表达式进行了这个反向转换。

标签: java google-cloud-dataflow apache-beam


【解决方案1】:

Beam 的 Java SDK 目前不提供此功能。在 Python 中,这似乎可以通过在使用 WriteToBigQuery 时使用 additional_bq_parameters 来实现,请参阅:https://github.com/apache/beam/blob/master/sdks/python/apache_beam/io/gcp/bigquery.py#L177

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 2021-04-29
    • 2016-10-04
    • 1970-01-01
    • 2018-09-22
    相关资源
    最近更新 更多